awk-05-数组




数组

数组:
存储一系列相同类型的元素,键/值方式存储,通过下标(键)来访问值
awk 中数组称为关联数组,不仅可以使用数字作为下标,还可以使用字符串作为下标
数组元素的键和值存储在 awk 程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序


数组格式:
array[index]=value



示例

1.自定义数组

image-20210817140716388

image-20210817141031361


2.通过NR设置记录下标,下标从1开始

image-20210817141131328


3.通过 for 循环遍历数组

i是数组的下标

第一种for循环的结果是乱序的,数组是无序存储的

第二种for循环是通过下标获取的,排序正常

因此,当下标是数组序列时,还是用 for( expr1;expr2;expr3 )循环表达式比较好,保持顺序不变

image-20210817141244745


4.通过++方式作为下标

x被 awk 初始化值是0

image-20210817141322323


5.使用字段作为下标

image-20210817141348586


6.统计相同字段出现次数

实现去重的话,只打印下标即可

image-20210817141413537


7.统计TCP连接状态

image-20210817141447059


8.只打印出现次数大于2的

image-20210817141508427


9.去重和不打印重复行

当值是 0 是为假, 非 0 整数为真

只打印重复的行说明:当处理第一条记录时, 执行了++, 初始值是 0 为假,就不打印,如果再遇到相同的记录,值就会+1,不为 0, 则打印

不打印重复的行说明: 当处理第一条记录时,执行了++, 初始值是 0 为假,感叹号取反为真,打印,如果再遇到相同的记录, 值就会+1,不为 0 为真,取反为假就不打印

image-20210817141543781


10.统计每个相同字段的 某字段总数

image-20210817141609482


posted @ 2021-08-17 14:17  李成果  阅读(54)  评论(0编辑  收藏  举报