我試圖讓幾個日誌的作業的輸出文件多一點人性化的在Unix上。相呼應的文字和削減Unix的
日誌文件從Web.log去是最新的高達Web.log.30是最古老的。我從這些文件grepping job123然後輸送至一個新的grep這裏只需要行與退出的消息,這意味着工作已完成。然後我用逗號將其剪下,這樣我只打印出時間戳而不是整行。這裏是我的腳本:
for file in `ls -tr Web.log*`; do grep job123 $file | grep Exit | cut -d "," -f1; done
它輸出了我,我想時間戳,按時間順序:
2015-06-17 21:07:00
2015-06-17 22:07:00
2015-06-17 23:07:00
2015-06-18 00:07:00
2015-06-18 01:07:00
2015-06-18 02:07:00
2015-06-18 03:07:00
所有我想要做的就是回聲添加到每一行的說:「劇本開始job123跑在:「所以它看起來像這樣:
Script job123 ran at: 2015-06-17 21:07:00
Script job123 ran at: 2015-06-17 22:07:00
Script job123 ran at: 2015-06-17 23:07:00
Script job123 ran at: 2015-06-18 00:07:00
Script job123 ran at: 2015-06-18 01:07:00
Script job123 ran at: 2015-06-18 02:07:00
Script job123 ran at: 2015-06-18 03:07:00
當用戶幾乎不認識的Unix,我只需要使它的用戶友好地閱讀。我正在努力迴應。
而且每個日誌文件大約是25MB長,所以管系列中可以消耗內存,因此,如果任何人有超速的事情了任何建議,它的大加讚賞。
注意,這是在生產服務器上,所以在安裝其它腳本一樣multigrep
是毫無疑問的。我打算將其作爲單行腳本來使用戶更簡單。
無論如何,我可以重複對我目前使用的腳本文本?我已經嘗試過在幾個階段迴應它,但沒有運氣。
謝謝。
,你可以把它管道進入AWK 。 'ls -tr Web.log *'中的文件。做grep job123 $ file | grep退出| cut -d「,」-f1 | awk'{print'Script job123跑在:「$ 0}';完成 – c4pone
謝謝@ c4pone,你的解決方案是最快的! – iLuPa
不用擔心男人。很高興我能幫上忙 – c4pone