首页 > linux > awk取数组元素的个数
2009十一月11

awk取数组元素的个数

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

一会儿就要写更麻烦的东西了,烦啊。PHP操作文件,咋就这么郁闷呢。(弱弱的抱怨一下)

首先准备如下数据:

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

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/11/11/1636/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

2 Responses to “awk取数组元素的个数”

  1. #1 要饭的 回复 | 引用 Post:2009-11-11 17:27

    有点专业,不知道为什么现在不爱学这些东西了

    [回复]

  2. #2 要饭的 回复 | 引用 Post:2009-11-11 17:28

    你评论这块效果不错,显示头像,还有话语

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)