awkを使って欲しい情報だけを抽出する超基本的なサンプルです。
最初に7列(カラム)目が”北海道” にマッチした場合に、必要な列を出力するサンプルをやってみました。
同様に、7列(カラム)目が”京都府”にマッチした場合に、必要な列を出力するサンプルに修正してみました。
大きなデータを扱う場合は、たったこれだけでもawkの便利さを実感出来るものです。なにしろちょっとしたスクリプトですが、12万行を2秒かからずに処理しちゃってますからね。
実際の処理です。$7が「”京都府”」と等しければ、$3と$7と$8をPRINTする命令を記していますawkにはフィールド番号という概念があり、左側から$1、$2と数えます。この概念のお陰で容易にCSV形式のファイルを扱うことが出来ます。
参考に付け加えれると、$0は行全体(1レコード)を指します。
BEGIN{ FS="," OFS="," } $7=="\"京都府\""{ print $3,$7,$8 } END{ }
まだソースコードうんぬんという程のことではありませんが一応記しておきます。
徐々にもっと実用的なサンプルを実行してみたいと思います。
コメント