awk

6月 222007
 

さて最近、噂の古代言語 awk を知りました。

たぶん、UNIX で文書を読み取る必要があるときにいい感じ。

今回は、CSV ファイルを awk さんに解析して頂いた。

仮に test.csv として、中身は

one,two,three
two_one,two_two,two_three

こんな感じだったとする。
two_one ってのは、2行目の1つめみたいな脳内変換で。

そして、解析を行う awk さんの全貌が以下。

print.awk

BEGIN が最初に実行するところで、FS=”,” は , をスペースに
置き換える組み込み変数。

真ん中の { } で囲まれた部分が、メインループ。

どうやら1行ずつ読んできて、$1 にひとつめ、$2 にふたつめの値
が入ってくるっぽい。

END が最後に実行するところ。今回は、動的配列のように格納した
値を最後にびゃっと表示させている。
文字連結もなんか意外に簡単。

実行すると

./print.awk test.csv
started….
one-two-three
two_one-two_two-two_three
end of file…

ちなみに

print “abc” >> “test.txt”;

とやると test.txt が作成されて abc と出力される。
デフォルトでなんか改行まで入るけど。
テンプレートファイルを大量に作成するときとか便利かも。

あらかじめエクセルで定義しておいて、awk さんに読み取って
色々して貰えるとなにかと楽出来そうだなー。

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre lang="" line="" escaped="" highlight="">