導入
CSV は「絞り込む(grep)→ 列を取り出す(cut)」の合わせ技で自在に加工できます。「東京に住んでいる人の名前だけが欲しい」といった、日常の“ちょっとした集計”をコマンドで片付けましょう。
説明
grep で条件に合う行を絞り、cut で欲しい列だけを残します。次は「東京の行 → 名前(1列目)」です。
grep 東京 data.csv | cut -d , -f 1
順番を意識しましょう。先に行を絞ってから、列を切り出すのが読みやすい定石です。
重複を除いた一覧が欲しいときは sort -u(並べ替えつつ重複を1つに)が便利です。次は「登場する都市の一覧(重複なし)」です。
cut -d , -f 3 data.csv | tail -n +2 | sort -u
結果はリダイレクトでファイルに保存できます。集計結果をレポートとして残すときの形です。
grep 東京 data.csv | cut -d , -f 1 > tokyo.txt
cat tokyo.txt
やってみよう
grep 東京 data.csv | cut -d , -f 1 で東京の人の名前が並ぶのを確認しましょう。> tokyo.txt を付けて保存し、cat tokyo.txt で中身が残っていることも確かめてください。
演習
data.csv から「大阪に住んでいる人の名前(1列目)」だけを取り出してください。
ヒント1を見る
まず grep 大阪 で絞り、次に cut -d , -f 1 で名前を取り出します。
ヒント2を見る
grep 大阪 data.csv | cut -d , -f 1