Linux命令-awk
Linux命令—awk
awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel)。处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用。
本章主要讲解awk命令的运用
awk格式
1 | |

- awk指令是由模式,动作,或者模式和动作的组合组成。
- 模式既pattern,可以类似理解成sed的模式匹配,可以由表达式组成,也可以是两个正斜杠之间的正则表达式。比如NR==1,这就是模式,可以把他理解为一个条件。
- 动作即action,是由在大括号里面的一条或多条语句组成,语句之间使用分号隔开。比如awk使用格式:
- pattern既模式,也可以理解为条件,也叫找谁,你找谁?高矮,胖瘦,男女?都是条件,既模式。
- action既动作,可以理解为干啥,找到人之后你要做什么。
模式和动作的详细介绍我们放在后面部分,现在大家先对awk结构有一个了解。
常用内建变量(可以直接使用的变量)
- $0:完整的输入记录
- $n:当前记录的第n个字段,字段间由FS分隔
- FS:input field seperator:输入字段分隔符,默认空白字符。也可使用-v指定。
- OFS:输出字段分隔符。使用-v指定。
- RS:输入时的换行符
- ORS:输出时的换行符
- NF:number of field 每一行的字段数量。加上$NF表示最后一列。
- NR:number of record 文件的行数,打印出来是打印行号
- FILENAME:当前文件的文件名
常用命令
print
输出格式:print item1,item2 …
备注:使用逗号作为分隔符;输出item可以是字符串、內建变量、awk表达式;若省略item,则显示$0整行;printf
格式化输出:printf FORMAT, item1, item2…按位放在format中。
注意事项:format必须要给出;如需换行,必须要显示写出;format中需要为后面每个item指定格式符;F
指定输入文件折分隔符
awk的简单使用
待处理文件为:
1 | |
输出文件全部内容
1 | |
输出第一列内容
1 | |
输出第2行到第4行的内容
1 | |
以o为分隔符输出第一列和第二列内容
1 | |
awk进阶使用
打印九九乘法表
1 | |
获取eth1网口ipV4地址
1 | |
- ‘+’代表多个连续的分隔符当做一个分隔符
计算文件大小
1 | |
Linux命令-awk
https://carl-5535.github.io/2020/12/16/Linux命令/Linux命令-awk/