我很難從數據集中拉出用戶編號和錯誤。我哪裏出錯了?從字符串中提取數字
源數據:
[319041185] :: [2013/08/28 08:10:22.702 P2D98 T020 d] PSComAccountsClient.UserPasswordVerify User=6272820002384270, Password=[not logged], AccessLevel=User
.
.
[319041253] :: [2013/08/28 08:10:22.718 P2D98 T020 e] [FunctorBase.Execute] (ErrorCode=Pedi.InternalError) An internal server error occurred. The account could not be found.
命令:
awk "{if (/User=/) {s=$NF; gsub (/[^0-9]/,\"\",s);} if (s==/[0=9]/ && /ErrorCode=/) {q=sub (/.*InternalError\\")"/,\"\"); } printf s; printf q}" file
電流輸出:
NULL
預期輸出:
6272820002384270 An internal server error occurred. The account could not be found.
您可以編輯以瞭解更多詳細信息後,沒有必要離開在評論細節 – krsteeve
你已經表現出一定的樣本輸入和你嘗試的解決方案所以這是一個很好的開始,現在公佈的預期輸出玩完了你的問題。 –
我能夠做到這一點如下: 代碼: awk「{if(/ User = /){s = $ 0; sub(/.* User = /,\」\「,s); sub (/P.*/,\"\",s);} if(s &&/ErrorCode = /){sub(/.* InternalError \\「)」/,\「\」);} printf s; print} 「」file「| grep」server error「| awk -F」,「」{if($ 2〜/ error /){print}}「|排序| Uniq – user2726046