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