我想知道一个字段中另一个字段中每个变量的值之和。例如,对于以下输入,我想知道第一列中每个值的第三列中的值之和:
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] }'