在awk

时间:2016-09-18 21:22:54

标签: regex bash awk

我使用以下awk命令仅打印本例中包含特定文本字符串(3705@192.168.1.5)的节/记录。这非常有效,但awk在打印输出时删除了记录分隔符。 对于基于通用文本的RS,我可以使用{print RS,$ 0}来重新打印它,但在这种情况下,awk会在每条记录之前打印正则表达式。

awk' BEGIN { RS = "([01]?[0-9] | 2 [0-3]):[0-5] [0-9]:[0-5] [0-9]。[0-9] [0-9] [0-9]" ;} /3705@192.168.1.5/ {打印 RS ,$ 0}' /var/log/abc.log

有没有办法可以在每条记录之前打印RS(在这种情况下是时间戳)?感谢

1 个答案:

答案 0 :(得分:1)

由于您使用的是多字符RS,因此您必须已经在使用gawk,因此只需打印RT而不是RS。阅读Arnold Robbins撰写的“有效Awk编程”第4版。