AWK也是一个很强大的文本处理工具,与grep, sed 一起称为linux文本处理的“三板斧”。
如图,awk是逐行处理文本,将一行内容按照指定分隔符将行分割为多个字段,其中分割完后第一个字段为:$1
,第二个为$2
。 $0
表示当前处理的整行。
除此之外,awk还有一些特殊的内置变量:
$0
)有的字段总数,(注:$NF
与NF
不一样,$NF
指的是当前行的最后一个字段)awk [option] ‘partten1 {action1}; partten2 {action2}‘
匹配条件和动作 [‘partten1 {action1}‘]
partten表示匹配的条件,action 表示对符合条件的内容进行的操作,常用动作有printf,用于格式化输出。
注意:
常用参数 [option]
-F
指定分隔符 ,如 awk -F, ‘{print $1,$2}
‘-v
定义变量 ,如 awk -va=1,‘{print $a+1}
‘-f
从脚本中读取awk命令awk ‘{print $1,$3}‘
awk -F, ‘{print $1,$3}‘
awk -va=1, ‘{print $1+a,$3}‘
awk ‘{FS=":"} $3 < 10 {print $1 "\t" $3}‘
awk ‘NR==1{pintf $1,$2,"total"};NR>=2{total = $1+$2 print $1,$2,total}‘
awk ‘BEGIN{print "aaa","bbb"}{print $1,$2}‘ file.txt
参考链接:https://www.runoob.com/linux/linux-comm-awk.html
原文:https://www.cnblogs.com/laiyaling/p/12809643.html