簡體   English   中英

在 awk 中重印動態 RS(記錄分隔符)

[英]Reprint a Dynamic RS (Record Separator) in 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/ {print RS , $0}' /var/log/abc.log

有沒有辦法在每條記錄之前打印 RS(在這種情況下為時間戳)? 謝謝

您一定已經在使用 gawk 因為您使用的是多字符 RS 所以只需打印RT而不是RS 閱讀 Arnold Robbins 所著的 Effective Awk Programming 第 4 版一書。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM