我有一個正在從事的工作項目。我正在建立的腳本最初採用兩個參數:一個是唯一標識符,另一個是日誌檔案(都是字串)。現在我已經完成了第一部分,即解析唯一識別碼。但第二部分是解析特定的字串,該字串是隨機產生的數字和字母字串。
我正在使用一個awk
語句來獲取這個隨機字串,並且我已經驗證了我的表達式在 Rubular 中是正確的。但是當我嘗試用更多程式碼測試程式碼時,什麼也沒有列印出來。這是我在命令列中輸入的內容:
awk '/\s=\s[a-zA-Z0-9-]+/ {print }' ~/jlog/server.log | more
這是我的腳本中的內容:
for j in $(cat ~/jlog/"$2"); do awk '/'"$1"'/\s=\s[a-zA-Z0-9-]+/ {print}'
這是我正在解析的一段日誌:
2014-06-17 15:34:52,406 INFO [random.random.xxx.message.Random] Processed instance (1.2.840.113619.2.284.3.2013961368.890.1402186239.15
5/1.2.840.113619.2.80.1944071037.22604.1402323463.136) from [email protected] to Random_AE. AssociationID = 9eddb1b0-368e-4fb9-a684-44cc14be389c
我正在專門尋找協會 ID 後面的隨機代碼。關於如何顯示結果有什麼建議嗎?我沒有什麼想法。
答案1
請嘗試
awk '$3=="INFO" && $(NF-2)=="AssociationID" && $(NF-1)=="=" { print $NF }' ~/jlog/server.log
透過直接傳遞日誌檔案的名稱,awk
您也可以避免使用for
and cat
。