gpt4 book ai didi

linux - 如何识别 unix 文件中的重复项并对值求和

转载 作者:太空宇宙 更新时间:2023-11-04 04:47:47 25 4
gpt4 key购买 nike

我正在尝试识别 unix 文件中的重复项并对值进行求和。例如:

我有一个文件,例如:

aa,  05
aa, 02
aa, 01
bb, 01
bb, 12
cc ,02
dd, 03

我需要输出:

aa, 08
bb, 13
cc, 02
dd,03

最佳答案

这应该可以解决问题:

$ awk '{a[$1]+=$2}END{for(k in a)print k,a[k]}' FS=, OFS=, file
bb,13
cc ,2
dd,3
aa,8

对于要排序的自定义排序管道:

$ awk '{a[$1]+=$2}END{for(k in a)print k,a[k]}' FS=, OFS=, file | sort    
aa,8
bb,13
cc ,2
dd,3

请参阅 man sort 了解 sort 可以执行的所有操作。

如果您想清除逗号周围的空格,那么一种方法是:

$ awk '{a[$1]+=$2}END{for(k in a)print k,a[k]}' FS=' *, *' OFS=, file | sort 
aa,8
bb,13
cc,2
dd,3

关于linux - 如何识别 unix 文件中的重复项并对值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24479495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com