2014-03-27 88 views
1

編寫bash解析腳本是我自己的個人噩夢,所以我就是這樣。從日誌解析條目名稱

服務器日誌的格式如下:

197 INFO Thu Mar 27 10:10:32 2014 
    seq_1_1..JobControl (DSWaitForJob): Waiting for job job_1_1_1 to finish 
198 INFO Thu Mar 27 10:10:36 2014 
    seq_1_1..JobControl (DSWaitForJob): Job job_1_1_1 has finished, status = 3 (Aborted) 
199 WARNING Thu Mar 27 10:10:36 2014 
    seq_1_1..JobControl (@job_1_1_1): Job job_1_1_1 did not finish OK, status = 'Aborted' 

在這裏,我需要解析出下面的格式字符串:

工作JOB_NAME完成後,狀態= 3(中止)

所以從上面的輸出我應該得到:job_1_1_1

如果我將此服務器日誌作爲特定命令輸出,那麼該腳本的外觀如何?

感謝XX

回答

2

使用grep -P

grep -oP '\w+(?= has finished, status = 3)' file 
job_1_1_1 
+0

地獄啊!!!!!! – Dennis

+0

它適合你嗎? – anubhava

+0

是的,我的回答暗示:) – Dennis