昨天写的是按照其中的一列消重来取另一列的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
}