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
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
}
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/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
有点专业,不知道为什么现在不爱学这些东西了
[回复]
你评论这块效果不错,显示头像,还有话语
[回复]