ファイルの行集計

ファイルの行集計

次のデータを含む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

おすすめ記事