汇总文件中的数字

时间:2016-08-08 21:42:06

标签: awk

我有一个看起来像这样的文件:

aaa 15
aaa 12
bbb 131
bbb 12
ccc 123
ddddd 1
ddddd 2
ddddd 3

我想像这样得到左侧每个独特元素的总和,并计算每个元素的总和:

aaa 27 - 2
bbb 143 - 2
ccc 123 - 1
ddddd 6 - 3

我如何使用AWK或类似的东西来实现这一目标?

1 个答案:

答案 0 :(得分:2)

你可以在awk中通过将总和收集到两个数组中来完成,使用第1列作为两个数组的关键(如果需要,然后传递给sort):

awk '{sums[$1] += $2; counts[$1] += 1}
     END {for (key in sums) {print key, sums[key], "-", counts[key]}}' file | sort

输出:

aaa 27 - 2
bbb 143 - 2
ccc 123 - 1
ddddd 6 - 3