
私はこの問題を解決する方法を探していますawk
。入力する:
X 1
Y 2
Z 3
X 4
Y 5
出力は次のようになります。
X 5
Y 7
Z 3
ここには2つの質問があります。最初は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