八,awk中数组的使用
8,1 数组定义
array[index]
:数组array的索引可以是任意字符串,如果数组某元素事先不存在,那么awk会自动创
建此元素并初始化为空串。
示例:
awk 'BEGIN{N[0]=na";N[1]="b";print N[0] N[1]}*
ab
awk ,BEGIN{N["aa"]="l";N["bb"]="2";print N["aa"] }'
1
awk ' BEGIN{N[aa] ="1"; N [bb] ="2"; print N[aa] }'
2
判断数组下标是否存在
示例:
awk 'BEGlN{N["xx"]="1";N["yy"]="2";N["zz"]="3";if("hh" in N)print "ok";else print "no"}'
no
8,2 利用for循环遍历数组元素
语法:for(var in 数组){语句}
示例
awk 'BEGlN{N[0]="a";N[1]="b";for(i in N) print N[i]}'
0
1
vim test
a
b
b
c
c
c
#统计重复数量
awk '{A[$1]++}END{print A["b"]}' test
2
#
#统计所有重复数量
awk '{A[$1]++}END{for(N in A){print A[N]}}' test
1
2
3
#
#显示内容
awk '{A[$1]++}END{for(N in A){print N}}' test
a
b
c