🦁

複数のCSVを結合して集計するワンライナー

2025/01/15に公開

カレントディレクトリに下記のファイルがあるとします。

a.csv
ID,名前,都道府県
1,佐藤,北海道
2,鈴木,東京
b.csv
ID,名前,都道府県
3,高橋,北海道
4,田中,東京
c.csv
ID,名前,都道府県,メールアドレス
5,伊藤,沖縄,ito@example.com

下記のコマンドを実行(Mac)することで都道府県ごとの件数の出力が得られます。

(echo "都道府県,件数" && find . -name "*.csv" -exec tail -n +2 {} + | awk -F',' '{count[$3]++} END {for (target in count) if (target != "") print target "," count[target]}' | sort -t, -k2 -nr) > output.csv
output.csv
都道府県,件数
北海道,2
東京,2
沖縄,1

Discussion