Linux
是否可以在 awk 中保留記錄分隔符?
我想按第一個單詞(例如 DEBUG 或 INFO)分隔記錄並保留 RS。
但執行程序,awk 刪除 RS。
如何保持?
log.txt 是
DEBUG:[2018-04-09 13:00:01] ========================= START LOG : : END LOG =========================== DEBUG:[2018-04-09 13:00:02] INFO:[2018-04-09 13:00:03] DEBUG:[2018-04-09 13:00:04] ========================= START LOG : : END LOG ===========================
我的嘗試程序是
$gawk 'BEGIN{RS="(DEBUG|INFO)"; FS="\n"}{print RS$0}' log.txt
但它顯示
(DEBUG|INFO):[2018-04-09 13:00:01] ========================= START LOG : : END LOG =========================== (DEBUG|INFO):[2018-04-09 13:00:02] (DEBUG|INFO):[2018-04-09 13:00:03] (DEBUG|INFO):[2018-04-09 13:00:04] ========================= START LOG : : END LOG ===========================
您可以使用 RT
gawk 'BEGIN{RS="(DEBUG|INFO)"; FS="\n"}{printf "%s%s", $0, RT}' log.txt