awk 我被困住了

awk 我被困住了

我有一個正在從事的工作項目。我正在建立的腳本最初採用兩個參數:一個是唯一標識符,另一個是日誌檔案(都是字串)。現在我已經完成了第一部分,即解析唯一識別碼。但第二部分是解析特定的字串,該字串是隨機產生的數字和字母字串。

我正在使用一個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您也可以避免使用forand cat

相關內容