如果第1列中的值相同,我需要在第2列中添加值:
#sorted-file.txt
a 1
a 5
a 4
b 3
b 7
b 10
#so on ..
#out.txt
a 10
b 20
#so on ..
答案 0 :(得分:3)
您可以使用awk:
awk '{sums[$1]+=$2} END{for (i in sums) print i, sums[i]}' file
a 10
b 20
上述解决方案可能会根据关联数组的内部哈希值更改列的顺序。要维护原始订单,请使用:
awk '!($1 in sums){ord[++n]=$1} {sums[$1]+=$2}
END{for (i=1; i<=n; i++) print ord[i], sums[ord[i]]}' file
a 10
b 20