Мне нужно привязать несколько файлов, и большую часть информации из них я удаляю (используя 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 ответ1

0

Вместо этого вы можете использовать следующие команды:

$ tail -F /log/rest_server*.log | sed -e "/^==>/d;/^$/d" | egrep -v ' INFO (<some regext>)'

Команда sed удаляет строки, начинающиеся с «==>», и те, которые пусты;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .