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 さんに読み取って
色々して貰えるとなにかと楽出来そうだなー。