Как можно разделить выходные строки с помощью 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
К этому output:
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
Спасибо заранее!
Если все, что вы хотите сделать, это печать ---------------------------------------------------------- после каждой строки, установите 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).
Если все, что вы хотите сделать, это печать ---------------------------------------------------------- после каждой строки, установите 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).