2

Я хотел бы добавить файл журнала, в который непрерывно ведется запись, но хотел бы исключить различные "общие" записи, поэтому я вижу только ошибки и т.д. По мере их появления. Я могу передать по каналу grep -v "pattern", но в идеале хотел бы использовать файл, содержащий записи для пропуска. Есть идеи?

4 ответа4

5

Вы можете использовать grep -v "pattern" как вы сказали. Но вместо использования pattern

`cat file_with_entires_to_skip`

Не забудьте включить заднюю часть. Итак, ваша команда будет выглядеть так:

tail -v FILE | grep -v "`cat FILE_WITH_ENTRIES_TO_SKIP`"
2

Параметр -f для grep позволяет указать файл, содержащий шаблоны, по одному шаблону на строку. Смотрите справочную страницу grep(1) .

Кроме того, команда unbuffer доступная в некоторых системах, отключит буферизацию вывода, которая обычно происходит в конвейерах. В противном случае добавление фильтра grep может задержать вывод вашего конвейера. Смотрите man-страницу unbuffer(1) для подробностей.

0

Используйте grep -f FILE и он получит шаблоны из этого файла. Смотрите man-страницу для получения дополнительной информации.

0

Мой grep включает опцию --exclude-from=FILE которая позволяет мне добавлять шаблоны исключений из файла. У меня есть:

my-macbook-pro:Sun America ianchesal$ grep --version
grep (GNU grep) 2.5.1

Так что вы могли бы сделать:

tail -f <file> | grep --exclude-from=excludes.txt

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