【シェルスクリプト】awkコマンドでcsv/tsvファイルの合計とカウントを集計し出力する

例えばお店の売り上げファイル(sales.csv)があります。このファイルを読み込んでお店ごとに集計します。集計内容は1項目目にお店、2項目目にお店の数、3項目目にお店ごとの売り上げ合計とし、集計結果を別のファイル(sum.csv)として出力したいとします。

sales.csv

sum.csv

 

awk(オーク)コマンドを使うとこういった集計も出来るのでワンライナーで書いてみたのが以下になります。

 

まずFオプションで読み込むファイルの区切り文字を指定します。カンマが入っているのでカンマ区切り=csvファイルになります。ちなみに\tとすればタブ区切りにすることも可能です。

同様にOFS=で出力ファイルの区切り文字を指定します。こちらもカンマになっていますが、\tとするとタブ区切りで出力されます。

こう書くと読み込むファイルの1行目を無視してくれるのでヘッダーを読み込まなくなります。

 

スポンサーリンク