Как grep в tail в нескольких файлах
Мне нужно привязать несколько файлов, и большую часть информации из них я удаляю (используя grep). Теперь мой вывод грязный с именами файлов. Как я могу их удалить?
Коротко к проблеме:$ tail -F /log/rest_server*.log | egrep -v ' INFO (<some regext>)'
вернуть:
==> /log/rest_server_dbs0.log <==
==> /log/rest_server_dbs1.log <==
<some useful data1>
==> /log/rest_server_dbs0.log <==
==> /log/rest_server_dbs1.log <==
<some useful data2>
==> /log/rest_server_dbs0.log <==
==> /log/rest_server_dbs1.log <==
==> /log/rest_server_dbs0.log <==
==> /log/rest_server_dbs1.log <==
==> /log/rest_server_dbm0.log <==
<some useful data3>
==> /log/rest_server_dbs1.log <==
==> /log/rest_server_dbs0.log <==
==> /log/rest_server_dbs1.log <==
==> /log/rest_server_dbs0.log <==
==> /log/rest_server_dbs1.log <==
==> /log/rest_server_dbs0.log <==
==> /log/rest_server_dbs1.log <==
==> /log/rest_server_dbm0.log <==
<some useful data4>
==> /log/rest_server_dbs1.log <==
Как я могу удалить это имена файлов и черные линии, если нет данных?
сделать результат
==> /log/rest_server_dbs1.log <==
<some useful data1>
<some useful data2>
==> /log/rest_server_dbm0.log <==
<some useful data3>
<some useful data4>
1 ответ
Вместо этого вы можете использовать следующие команды:
$ tail -F /log/rest_server*.log | sed -e "/^==>/d;/^$/d" | egrep -v ' INFO (<some regext>)'
Команда sed удаляет строки, начинающиеся с "==>", и те, которые пусты;