15/09/27 16:29:45.68 .net
こんな風なテキストファイルlog.txtがあります
%PART_A%
a11 a12 13
a21 a21 a23
a31 a32 a33
%PART_B%
b11 b12 b13 b14
b21 b22 b23 b24
b31 b32 b33 b24
このように%PART_x%(実はxはAとBがランダムに登場)で区切られながら
数行ずつ出力されているテキストを、値だけ(a11~b24まで)、5列で左詰めの
CSV形式に整形するために、こんなスクリプトを作りました(ほとんどawkですが・・・)
#!/bin/sh
cat log.txt |
awk 'BEGIN{FLG=0}
/%PART_A%/{FLG=1; getline}
/%PART_B%/{FLG=2; getline}
{if (FLG==1) {print $1","$2","$3",0,0"}
else if (FLG==2) {print $1","$2","$3","$4",0"}
}'
期待通り動いてはいるのですが、フラグやgetline周りが、なんか力技?っぽくて
改善の余地があるように思ってます
このような処理をawkで書くときって、どのように書くとよいのでしょう