awk取数组元素的个数 distinct

本文介绍了一种利用AWK脚本处理特定格式数据的方法,通过对数据的第二列进行消重处理并计算其唯一元素的数量。该方法适用于需要统计特定字段不同值数量的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值