我有一个看起来像这样的文件:
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或类似的东西来实现这一目标?
答案 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