引言
Awk
是一种用于高级文本处理的通用脚本语言,其次要用作报告和剖析工具,与大多数其余程序性编程语言不同,Awk
是数据驱动的,也就是说须要定义一组针对输出文本要执行的操作,而后其获取输出数据,对其进行转换,而后将后果发送到规范输入。
语法
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
文件内容如下:
Bucks Milwaukee 60 22 0.732 Raptors Toronto 55 24 0.707 76ers Philadelphia 51 31 0.622Celtics Boston 33 33 0.598Pacers Indiana 30 34 0.585
输入example.txt
的第3
个字段。
awk '{ print $3 }' example.txt# 60# 55# 51# 33# 30
应用正则表达式匹配出以R
结尾的组。
awk '/^R/ { print $1,$2,$3,$4 }' example.txt# Raptors Toronto 55 24
应用BEGIN
以及END
输入在解决记录之前与之后执行的操作,处理过程为输入第二个字段蕴含Tor
的组。
awk 'BEGIN { print "Start Processing" }; $2 ~ /Tor/ {print $1,$2,$3,$4 }; END { print "End Processing" }' example.txt# Start Processing# Raptors Toronto 55 24# End Processing
每日一题
EveryDay/awk命令.md at master · WindrunnerMax/EveryDay · GitHub
关联
[[【Linux】getline解释]]
参考
https://linuxize.com/post/awk...
https://www.computerhope.com/...
https://www.runoob.com/linux/...