1
我需要添加第2列的值,如果值是第1列相同:如何在第二列中添加值,如果第一列中的相应值在bash中相同?
#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 ..
我需要添加第2列的值,如果值是第1列相同:如何在第二列中添加值,如果第一列中的相应值在bash中相同?
#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 ..
您可以使用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
工作完美。谢谢 – SSh