根据其他字段中的变量获取字段中的值之和

根据其他字段中的变量获取字段中的值之和

我想知道一个字段中另一个字段中每个变量的值之和。例如,对于以下输入,我想知道第一列中每个值的第三列中的值之和:

a x 3
b y 4
a y 2
b x 5

输出应该是:

a 5
b 9

我的数据是tsv格式化的。我可能想要这样的东西:

awk -F'\t' 'BEGIN{SUM=0}{ SUM+=$3 }END{print SUM}' 

但对于第 1 列的每个值。我发现相关问题在这里,但由于我对 awk 脚本非常陌生,因此我无法出于我的目的修改给定的 awk 脚本。

我没有安装 datamash,所以我需要一个带有 awk 和 for 循环的解决方案。

谢谢

答案1

创建一个以 $1 为索引的数组。

awk -F'\t' '{ SUM[$1] += $3 } END { for (j in SUM) print j, SUM[j] }'

相关内容