我正在寻找一种方法来解决这个问题awk
。输入:
X 1
Y 2
Z 3
X 4
Y 5
输出应如下所示:
X 5
Y 7
Z 3
我在这里看到两个问题:第一个是awk
.有可能吗?
它会这样工作:即使$$1 (X) exists add $2 else declare $$1 (X) then add $2
我知道如何做到这一点,我仍然需要知道所有声明变量的名称,即 X,Y,Z。
我猜有一种更简单的方法来处理这个任务,但我不明白......
答案1
在awk
数组中是关联的,因此以下工作有效:
awk '{ vect[$1] += $2 };
END { for (item in vect) print item, vect[item] }' input-file