awk取数组元素的个数 distinct

    技术2022-05-20  59

    昨天写的是按照其中的一列消重来取另一列的count,可是却没有交待如何取数组元素的个数,刚才简单写了一个小程序,验证通过。

    首先准备如下数据:

    1{SPR}2{SPR}0 2{SPR}2{SPR}0 3{SPR}3{SPR}0 4{SPR}3{SPR}0 5{SPR}4{SPR}0

    我想取第二列的个数,当然这里是要消重的,否则一个NR就可以了。残念。

    #将记录按{SPR}分隔为列,并将输出的显示分隔符设置为TABBEGIN { FS= "{SPR}"; OFS= "/t"; } #把$2第二列当作数组元素,可以保证将数组按第二列消重,因为数组的KEY唯一 {       arrqid [ $2 ]++; }  END {     #循环数组,每次把一个新的变量+1,这个变量就是数组的个数      for (i in arrqid )       {            count++;               }       #输出结果,为3     print count }

    最新回复(0)