라인으로 AWK 분할 출력

라인으로 AWK 분할 출력

이와 같이 tailf 및 awk를 사용하여 출력 라인을 어떻게 분할할 수 있습니까?

이것으로부터:

tail -f logfile.log | awk '/connected/ {print "\033[31m" $0 "\033[39m"}'

산출:

2018-01-31 10:00 user connected autentication successful
2018-01-31 10:10 user connected autentication successful
2018-01-31 10:23 user connected autentication successful
2018-01-31 10:34 user connected autentication unsuccessful
2018-01-31 10:35 user connected autentication unsuccessful

이 출력에:

2018-01-31 10:00 user connected autentication successful
----------------------------------------------------------
2018-01-31 10:10 user connected autentication successful
----------------------------------------------------------
2018-01-31 10:23 user connected autentication successful
----------------------------------------------------------
2018-01-31 10:34 user connected autentication unsuccessful
----------------------------------------------------------
2018-01-31 10:35 user connected autentication unsuccessful

미리 감사드립니다!

답변1

구분선을 흰색으로 표시하려면 다음을 수행하세요.

tail -f logfile.log | awk '/connected/ {print "\033[31m" $0 "\033[39m\n-----------------------------------"}'

구분선을 빨간색으로 표시하려면 다음을 수행하세요.

tail -f logfile.log | awk '/connected/ {print "\033[31m" $0 "\n-----------------------------------\033[39m"}'

답변2

모든 줄 뒤에 인쇄하려는 것이면 ----------------------------------------------------------ORS(출력 레코드 구분 기호)를 모든 줄 뒤에 올 내용으로 설정하세요.

$ awk -v ORS='\033[39m\n----------------------------------------------------------\n' '/connected/ {print "\033[31m" $0}' foo
2018-01-31 10:00 user connected autentication successful
----------------------------------------------------------
2018-01-31 10:10 user connected autentication successful
----------------------------------------------------------
2018-01-31 10:23 user connected autentication successful
----------------------------------------------------------
2018-01-31 10:34 user connected autentication unsuccessful
----------------------------------------------------------
2018-01-31 10:35 user connected autentication unsuccessful
----------------------------------------------------------

\033[39m여기서는 명령 에서 ORS로 이동 print하고 하이픈을 줄 바꿈( \n)으로 묶었습니다.

관련 정보