bash - 如果线上的值相同则相加

标签 bash awk grep

我有一个 CSV 文件,例如:

1015,5
1015,4
1035,17
1035,11
1009,1
1009,4
1026,9
1004,5
1004,5
1009,1

我搜索了一种获取方法:如果第一个数字匹配,则添加第二个数字

1015,9
1035,28
1009,6
1026,9
1004,10

最佳答案

试试这个:

awk 'BEGIN{FS=OFS=","}{a[$1]+=$2}END{for(i in a){print i,a[i]}}' file

这是每个 shell 编码人员都应该清楚地知道的片段。

关于bash - 如果线上的值相同则相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28013830/

相关文章:

python - 如何在Python的多个sheet中执行多个命令

linux - 从终端删除多个文件

linux - 将 AWK 结果分配给变量

linux - 分割逗号集文件

bash - 如何使用 'kill' 结合 'grep' 终止进程

json - 如何使用jq选择多个具有重复项目的项目?

regex - 在 bash 中拆分字符串

perl - 计算图中子图的出现次数

linux - Grep 文件中的多个模式并为每个模式输出前 5 个匹配项

linux - 如何让 `find` 忽略 .svn 目录?