Linux之awk数组(四)
1.awk数组
AWK 可以使用关联数组这种数据结构,索引可以是数字或字符串。
AWK关联数 组也不需要提前声明其大小,因为它在运行时可以自动的增大或减小。
AWK不支持多维数组。
2.awk数组的语法格式
array_name[index]=value
- array_name:数组的名称
- index:数组索引
- value:数组中元素所赋予的值
3.创建awk数组
3.1 索引为数字时
[root@ecs-76840553 ~]# awk 'BEGIN{array[0]="1";array[1]="2";array[2]="3";for(i in array){print array[i]}}' 1 2 3
3.2 索引为字符串时
[root@ecs-76840553 ~]# awk 'BEGIN{array["第一"]="1";array["第二"]="2";array["第三"]="3";for(i in array){print array[i]}}' 3 1 2
4.删除awk数组元素
使用delete函数
[root@ecs-76840553 ~]# awk 'BEGIN{array[0]="1";array[1]="2";array[2]="3";for(i in array){print array[i]};print "删除数组元素后..." ;delete array[1]; for(i in array){print array[i]}}' 1 2 3 删除数组元素后... 1 3
5.常用实例
5.1 把文件的列作为数组的索引值,通过array[$0]+=1方式自增.
[root@ecs-76840553 myawk]# cat 3.txt aa bb aa vv aa cc aa bb ee aa pp [root@ecs-76840553 myawk]# cat 3.txt|awk '{a[$0]+=1}END{for(i in a) print i,a[i]}' bb 2 vv 1 pp 1 cc 1 ee 1 aa 5 [root@ecs-76840553 myawk]#