我想按第一个单词(例如调试或信息)分隔记录并保留 RS。
但执行程序时,awk 删除了 RS。
怎么保存呢?
日志.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