あるフィールドと別のフィールドの各変数値の合計を知りたいです。たとえば、次の入力では、最初の列の各値について、3番目の列の値の合計を知りたいと思います。
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] }'