기록을 첫 번째 단어(예: 디버그 또는 정보)로 구분하고 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