次のデータを含むabc.csvファイルがあります。
abc.csv
:
A B C D
a x p 1
a x p 6
b y q 5
b y q 3
a x p 2
a y q 7
awk
出力ファイルを取得するにはスクリプトを作成する必要があります。これを一つにすることができますかawk
?
output.csv
a x p 9
b y q 8
状況:
- ABCDは参照用にのみ使用されるファイルヘッダーです。
- 出力ファイルに固有の列Aがあるように、列Aを集計する必要があります。
- B列とC列で同じ値を持つ行のみを集計し、そうでない場合は行を無視します。たとえば、行6を無視します。
- 各行を繰り返しながら列D値を追加します。
ベストアンサー1
Awk
解決策:
awk '{ k = $1 OFS $2 OFS $3 }
{ sum[k] += $4; count[k]++ }
END{ for (i in sum) if (count[i] > 1) print i, sum[i] }' abc.csv
出力:
a x p 9
b y q 8