Применить фильтрацию multitail ко многим файлам, переданным через подстановочный знак

Применить фильтрацию multitail ко многим файлам, переданным через подстановочный знак

multitailимеет хороший механизм фильтрации на основе регулярных выражений, который описан в man-странице и онлайн-руководстве. Оба источника утверждают, что строки журнала, соответствующие заданному регулярному выражению, могут быть исключены из вывода с помощью переключателя -ev:

multitail -ev "ignorelinescontainingthis" /var/log/whatever.log -ev "alsoignorethis" /var/log/another.log

Однако это, по-видимому, не работает для фильтрации многих файлов журналов, которые передаются с использованием подстановочных знаков:

multitail -ev "thisdoesntwork" /var/log/myservice*.log

Есть ли способ заставить это работать?

Для анализа я попробовал -ecпереключатель (который выделяет совпадения с регулярными выражениями), и оказалось, что фильтр применяется только к первому файлу в списке подстановочных знаков, но ни к одному из остальных.

решение1

Превращаю свой комментарий в ответ.

Страница руководства дляmultitailопределяет -eопцию следующим образом:

-e Используйте следующее регулярное выражение для следующегофайл.

Поэтому фильтр регулярного выражения применяется только к следующему файлу. При использовании shell globs это приведет к тому, что фильтр будет применен только к первому файлу в расширенном списке файлов.

Чтобы применить фильтр регулярных выражений ко всем файлам, -Eнеобходимо использовать следующую опцию:

-E Используйте следующее регулярное выражение для следующегофайлы.

Параметр -v, который отрицает указанное регулярное выражение, должен работать одинаково для любого из этих параметров.

Связанный контент