2016-09-18 45 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 –