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

相關內容