awk

さて最近、噂の古代言語 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 さんに読み取って
色々して貰えるとなにかと楽出来そうだなー。