如何根据另一列中的值对列中的值求和?
我有一个文本文件:
ABC 50
DEF 70
XYZ 20
DEF 100
MNP 60
ABC 30
我想要一个输出,它总结各个值并显示结果。例如,文件中所有 ABC 值的总和为 (50 + 30 = 80),DEF 为 (100 + 70 = 170)。因此,输出应将所有唯一的第一列名称总结为 -
ABC 80
DEF 170
XYZ 20
MNP 60
任何帮助将不胜感激。
谢谢
I have a text file which is:
ABC 50
DEF 70
XYZ 20
DEF 100
MNP 60
ABC 30
I want an output which sums up individual values and shows them as a result. For example, total of all ABC values in the file are (50 + 30 = 80) and DEF is (100 + 70 = 170). So the output should sum up all unique 1st column names as -
ABC 80
DEF 170
XYZ 20
MNP 60
Any help will be greatly appreciated.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
awk '{sums[$1] += $2} END { for (i in sums) printf("%s %s\n", i, sums[i])}' input_file | sort
如果您不需要按字母顺序排序结果,只需删除
|排序
部分。awk '{sums[$1] += $2} END { for (i in sums) printf("%s %s\n", i, sums[i])}' input_file | sort
if you don't need the results sorted alphabetically, just drop the
| sort
part.还有一点不那么简单:
And a little bit less straightforward: