用awk进行文本处理,少不了就是它的数组处理。那么awk数组有那些特点,一般常见运算又会怎么样呢。我们先看下下面的一些介绍,结合例子我们会讲解下它的不同之处。在 awk 中数组叫做关联数组(associative arrays),因为下标记可以是数也可以是串。awk 中的数组不必提前声明,也不必声明大小。数组元素用 0 或空串来初始化,这根据上下文而定。

一、定义方法

1:可以用数值作数组索引(下标)

2:可以用字符串作数组索引(下标)

三、实例

现在有一个这样形式的数据,实际数据量可能有几十万,取出若干条做示例:

UID, 终端, 性别

第一列代表UID,第二列是用户的终端设备类型,第三列是用户性别,m代表男,f代表女。

该数据是用uniq处理后的数据,现在,需要统计使用各个终端的有多少人,男和女各有多少人。

使用如下的一条命令即可实现:

先对每一行进行处理,以设备类型或性别为键值,进行累加;最后END循环输出键,值。注意数组从0开始,最后各个数值应当加上一个1才是正确数据。