日志檔案看起來像
07-15:01:56 ClientID="422314" ComplianceID="skdjiowecn33nf" ExecID="343ndndn8c" Type="NOK"
07-15:01:57 ClientID="422e214" ComplianceID="skdjiowecn33nf" ExecID="34en3fn" Type="NOK"
07-15:01:58 ClientID="42124" ComplianceID="skdjiowecn33nf" ExecID="4n23n43" d" Type="NOK"
現在我必須修改它的內容,如下所示。我需要添加開始 html 標記并將 ExecID 復制到 TRANID,然后通過附加 "PUSH_" 來修改 ExecID 的值。我還需要將值型別從 NOK 更改為 OK
07-15:01:55 ClientID="42454214" CompID="skdjiowecn33nf" ExecID="PUCH_dsjkh323f0d" Type="OK" TRANID="dsjkh323f0d"
</START>
<START>
07-15:01:56 ClientID="422314" CompID="skdjiowecn33nf" ExecID="PUSH_343ndndn8c" Type="OK" TRANID="343ndndn8c"
</START>
<START>
07-15:01:57 ClientID="422e214" CompID="skdjiowecn33nf" ExecID="PUSH_34en3fn" Type="OK" TRANID="34en3fn"
</START>
<START>
07-15:01:58 ClientID="42124" CompID="skdjiowecn33nf" ExecID="PUSH_4n23n43 d" Type="OK" TRANID="4n23n43"
</START>
腳本應該處理大量的日志
uj5u.com熱心網友回復:
$ awk '{
printf "%s\n%s\n%s\n",
"<START>",
gensub(/(.*) (ExecID=)"(.*)" (.*)/,"\\1 \\2\"PUSH_\\3\" type=\"OK\" TRANID=\"\\3\"", 1, $0),
"</START>"
}' logfile
<START>
07-15:01:56 ClientID="422314" ComplianceID="skdjiowecn33nf" ExecID="PUSH_343ndndn8c" type="OK" TRANID="343ndndn8c"
</START>
<START>
07-15:01:57 ClientID="422e214" ComplianceID="skdjiowecn33nf" ExecID="PUSH_34en3fn" type="OK" TRANID="34en3fn"
</START>
<START>
07-15:01:58 ClientID="42124" ComplianceID="skdjiowecn33nf" ExecID="PUSH_4n23n43" type="OK" TRANID="4n23n43"
</START>
07-15:01:56 ClientID="422314" ComplianceID="skdjiowecn33nf" ExecID="343ndndn8c" Type="NOK"
----------------------------------------------------------- ------- ---------- ----------
| | | (.*) group3 \\3 | (.*) group4 \\4
match-groups (.*) group1 \\1 |
(ExecID=) group2 \\2
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/496495.html
上一篇:帶有Bash的CSV中的空值
