2016-09-18 44 views
0

在本例中,我正在使用以下awk命令僅打印包含特定文本字符串的段/記錄([email protected])。這工作得很好,但awk在打印輸出時刪除記錄分隔符。 對於基於RS的通用文本,我可以使用{print RS,$ 0}來重新打印它,但在這種情況下,awk會在每條記錄之前打印正則表達式。在awk中重新打印動態RS(記錄分隔符)

AWK「BEGIN {RS = 「([01] [0-9] | 2 [0-3]):[0-5] [0-9]:[0-5] [ 0-9] [0-9] [0-9] [0-9]「;} /[email protected]/ {print RS,$ 0}'/var/log/abc.log

有沒有一種方法可以在每條記錄之前打印RS(在這種情況下是時間戳)?謝謝

回答

0

您必須已經使用gawk,因爲您正在使用多字符RS,因此只需打印RT而不是RS。閱讀Arnold Robbins編寫的「有效的Awk編程」第4版。

+1

解決了它。謝謝 –

+0

不客氣,請閱讀http://stackoverflow.com/help/someone-answers –