サーバーで「再生」する必要のあるログファイルがあります。
次のようなエントリが含まれています。
Request:
query: EXEC prc_insert_customer
@param0: 110040851
@param1: 137463
@param2: user@example.com
@param3: John
@param4: Smith
@param5: Some address
@param6:
@param7:
@param8: Some city
@param9: GBR
@param10: POSTCODE
@param11: (555) 123-45-67
Response:
...
そのような各チャンクをに変換する必要があります
EXEC prc_insert_customer '110040851', '137463', ..., '(555) 123-45-67'
私はそのためにawkを使おうとしました:
/EXEC prc_insert_customer/ {
str = "EXEC prc_insert_customer";
}
str && /@param/ {
if ($1 == "@param0:")
sep = ""
else
sep = ","
str = ((str) (sep) " '"($2) ("'"))
}
/^Response/ {
if (str)
print str
str = ""
}
しかし、私が得る出力は次のとおりです。
', '(555)'DE', '', 'Some', 'GBR0851
正しい出力を取得するにはどうすればよいですか?
で使用GNU Awk 4.0.0
しFedora 17
ます。