我有一个日志文件,我需要在服务器上“重播”。
它包含这样的条目:
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
.