在awk中重印动态RS(记录分隔符)



在本例中,我使用以下awk命令仅打印包含特定文本字符串(3705@192.168.1.5)的部分/记录。这工作得很好,但是awk在打印输出时删除了记录分隔符。对于基于一般文本的RS,我可以使用{print RS, $0}来重新打印它,但在这种情况下,awk在每个记录之前打印正则表达式。

awk的开始{ 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(时间戳)?由于

您必须已经使用gawk,因为您正在使用多字符RS,所以只需打印RT而不是RS。阅读Arnold Robbins的《Effective Awk Programming, 4th Edition》

最新更新