1.awk每次读一行数据,如果设置了-F选项,是在这一行使用分隔符分,$0是全部

2.awk由模式和动作组成

3.条件判断模式{动作}

a.txt
aaa
bbb
aaa
ccc
ddd


cat a.txt |awk '$1=="aaa"{print "=="$1}'

[Linux] awk基础编程_Linux

 

4./正则模式/{动作}

[Linux] awk基础编程_Linux_02

 

可以有多个模式动作

[Linux] awk基础编程_Linux_03

 

5.条件操作符,~匹配正则 !~不匹配

 

cat a.txt |awk '{if ($1=="aaa") print $1;else print "==="$1}'

[Linux] awk基础编程_Linux_04

6.特殊的模式(BEGIN,END) , 都只执行一次 , 不像前面的模式 , 每一行都会执行 , 用于初始化和最终结果的打印等

cat a.txt |awk '{arr[$1]+=1}END{for(row in arr){print row" 出现次数 "arr[row]}}'

配合数组统计出现次数

[Linux] awk基础编程_Linux_05