レコードを最初の単語(デバッグや情報など)で区切って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
===========================
答え1
RTを利用してください
gawk 'BEGIN{RS="(DEBUG|INFO)" FS="\n"}{printf "%s%s", $0, RT}' log.txt