awk命令
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
程序处理的文件。
示例
Bucks Milwaukee 60 22 0.732
Raptors Toronto 55 24 0.707
76ers Philadelphia 51 31 0.622
Celtics Boston 33 33 0.598
Pacers 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,$4 }; END { print "End Processing" }' example.txt
# Start Processing
# Raptors Toronto 55 24
# End Processing
每日一题
https://github.com/WindrunnerMax/EveryDay
参考
https://linuxize.com/post/awk-command/
https://www.computerhope.com/unix/uawk.htm
https://www.runoob.com/linux/linux-comm-awk.html