引言
Awk是一种用于高级文本处理的通用脚本语言,其主要用作报告和分析工具,与大多数其他程序性编程语言不同,Awk是数据驱动的,也就是说需要定义一组针对输入文本要执行的操作,然后其获取输入数据,对其进行转换,然后将结果发送到标准输出。
语法
1  | awk [ -F fs ] [ -v var=value ] [ 'prog' | -f progfile ] [ file ... ]  | 
参数
-F fs: 将输入字段分隔符设置为正则表达式fs。-v var=value: 在执行awk程序之前,将值赋值给变量var。'prog':awk程序。-f progfile: 指定文件progfile,其中包含要执行的awk程序。file ...: 由指定的awk程序处理的文件。
示例
示例文件example.txt文件内容如下:
1  | Bucks Milwaukee 60 22 0.732  | 
输出example.txt的第3个字段。
1  | awk '{ print $3 }' example.txt  | 
使用正则表达式匹配出以R开头的组。
1  | awk '/^R/ { print $1,$2,$3,$4 }' example.txt  | 
使用BEGIN以及END输出在处理记录之前与之后执行的操作,处理过程为输出第二个字段包含Tor的组。
1  | awk 'BEGIN { print "Start Processing" }; $2 ~ /Tor/ {print $1,$2,$3,$4 }; END { print "End Processing" }' example.txt  | 
每日一题
EveryDay/awk命令.md at master · WindrunnerMax/EveryDay · GitHub
关联
[[【Linux】getline解释]]
参考
https://linuxize.com/post/awk-command/
https://www.computerhope.com/unix/uawk.htm
https://www.runoob.com/linux/linux-comm-awk.html