Shell脚本中awk命令介绍

目录

一.awk详解

1.1 awk的概述

1.2 awk处理文本方式

1.3 awk的工作原理

 1.4 awk语法

二.awk常见的内建变量(可以直接使用)

2.1 $0当前处理的行的整行内容

 2.2 NR处理指定行的内容

2.2.1 使用数字处理内容

 2.2.2 使用字符串处理行的内容

 2.2.3 打印行号

 2.3 $n当前处理行的第n个字段

 2.4 FS(-F)列分隔符,指定每行文本的字段分隔符

2.5 OFS输出内容的列分隔符

​2.6 NF当前处理的行的字段个数

 2.7 RS行分隔符

 三.awk实例

 四.date命令


一.awk详解

1.1 awk的概述

  • awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。
  • 数据可以来自标准输入、一个或多个文件,或其他命令的输出。
  • 它支持用户自定义函数和动态正则表达式等先进功能。

1.2 awk处理文本方式

1.  awk的处理文本和数据的方式是这样的,
2.  它逐行扫描文件,从第一行到最后一行,
3.  寻找匹配的特定模式的行,并在这些行上进行你想要的操作。
4.  如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕)。
5.  awk分别代表其作者姓氏的第一个字母,因为他的作者是三个人,分别是Alfred Aho、Peter             Weinberger、Kernighan


1.3 awk的工作原理

1. awk使用一行作为输入,并在这一行赋给内部变量$0,每一行也可称为一个记录,以换行符结束
2. 然后,行被:(默认为空格或制表符)分解成字段(或域),每个字段存储在已编号的变量            中,从$1开始 最多达100个字段
3.  awk输出之后,将从文件中获取另一行,并将其存储在$0中,覆盖原来的内容,然后将新的字         符串分隔成字段并进行处理,该过程将持续到所有行处理完毕
4. 一行被称为记录,一个词称为字段

 1.4 awk语法

  • 选项:例如 -F 定义输入字段分隔符,默认的分隔符是空格或制表符(tab)
  • 命令(时空):过去 现在 将来
  • BEGIN{}:begin发生在行处理前(注意大写)
  • { } :行处理时,读一次执行一次
  • END{}:=行处理之后

二.awk常见的内建变量(可以直接使用)

 

2.1 $0当前处理的行的整行内容

 2.2 NR处理指定行的内容

2.2.1 使用数字处理内容

 2.2.2 使用字符串处理行的内容

 2.2.3 打印行号

 使用BEGIN输出包含指定字符的行并统计有多少行

BEGIN模式表示,在处理指定的文本之前,需要先执行BEGIN模式中指定的动作;
awk再处理指定的文本,之后再执行END模式中指定的动作;
END{ } 语句块中,往往会放入打印结果等语句。

 2.3 $n当前处理行的第n个字段

 示例:

 2.4 FS(-F)列分隔符,指定每行文本的字段分隔符

 

 与! 一起使用

 与if语句或者while或三目运算符等一起使用时需要在嵌套一个大括号{ }

 

 三元运算符

2.5 OFS输出内容的列分隔符

将空格换为“|”

 2.6 NF当前处理的行的字段个数

打印第一个字段与最后一个字段

 2.7 RS行分隔符

 三.awk实例:

查看内存使用  

 查看cpu空闲率

top -b -n 1 只会输出一次top的结果不会进行刷新

通过脚本分析/var/log/secure查看哪些主机在暴力破解本服务,如果统计出密码验证失败超过三次就把IP加入到黑名单中/etc/hosts deny

 

 四.date命令

 以数字形式输出

  以年月日的形式输出

 输出当月的第一天

 输出下一个月的第一天 

 输出本月的最后一天 

 输出上个月的倒数第3天

 

  输出服务器重启时间

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值