if(条件){指令}
if(条件){指令1}else{指令2}
if(条件1){指令1}else if(条件2){指令2}else{指令n}
[root@server0 ~]# awk -F: '{if($3==0){print}}' /etc/passwd
[root@server0 ~]# awk -F: '{if($3<=2){print "aaa"}else{print "xyz"}}' /etc/passwd
[root@server0 ~]# awk -F: 'BEGIN{x=0;y=0}{if($4<10){x++}else if($4>1000){y++}}END{print x,y}' /etc/passwd 结合BEGIN和END使用,找出第四列小于10,大于1000的数量
9 1
数组 能够储存多个不同值的特殊变量
数组名称[下标]=值
a[1]=100
a[2]=200
[root@server0 ~]# awk 'BEGIN{a[1]=100;a[2]=200;print a[1],a[2]}' 定义数组a,下标分别是1于2,然后输出该数组对应的下标值
100 200
[root@server0 ~]# awk 'BEGIN{a[1]=100;a[1]++;print a[1]}'
101
[root@server0 ~]# awk 'BEGIN{a["a"]="abc";print a["a"]}'
abc 数组可以不用存数字
for循环结合数组使用(经常使用再END中)是,循环的是下标
for(变量 in 数组名){print 变量,数组名[变量]}
[root@server0 ~]# cat aaa
abc
abc
xyz
opq
xyz
abc
[root@server0 ~]# awk '{a[$1]++}END{for(i in a){print i,a[i]}}' aaa
opq 1
abc 3
xyz 2
{a[$1]++} 逐行任务,相当于收集数据,然后再END任务中用法for循环查看数组的所有内容