与另一个字段相关的字段的求和。

与另一个字段相关的字段的求和。

如何通过 找到与另一个字段相关的某个字段的总和awk,请考虑以下示例:

文件:

boo,foo,VO,1000
boo,foo,VO,1000
bar,var,DT,1000
var,bar,VO,2000

$3在此示例中,我需要收集per的数量$4,因此结果将是:

VO,1000 2
DT,1000 1
VO,2000 1

第一和第二字段被忽略。

答案1

如果您不介意重新排序,则以下内容应该有效

awk -F, '{print $3","$4}' <file name> | uniq -c

uniq -c计算重复次数

对于您的输入,输出是

  2 VO,1000
  1 DT,1000
  1 VO,2000

如果需要,可以通过第二个 awk 实现进一步编辑

答案2

要在 awk 中完成这一切:

awk '
    BEGIN {FS=SUBSEP=","} 
    {count[$3,$4]++} 
    END {for (key in count) print key, count[key]}
' file
DT,1000 1
VO,1000 2
VO,2000 1

相关内容