Aplicar filtragem multitail a muitos arquivos passados ​​​​via curinga

Aplicar filtragem multitail a muitos arquivos passados ​​​​via curinga

multitailpossui um bom mecanismo de filtragem baseado em regex que é descrito na página de manual e no manual online. Ambas as fontes afirmam que as linhas de log correspondentes a um determinado regex podem ser excluídas da saída usando a -evopção:

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

No entanto, isso parece não funcionar para filtrar muitos arquivos de log que são passados ​​usando curingas:

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

Existe uma maneira de fazer isso funcionar?

Para fins de análise, tentei a -ecopção (que destaca as correspondências de regex) e descobri que o filtro é aplicado apenas ao primeiro arquivo da lista de curingas, mas a nenhum dos outros.

Responder1

Transformando meu comentário em uma resposta.

A página de manual paramultitaildefine a -eopção da seguinte forma:

-e Use a próxima expressão regular no seguintearquivo.

Portanto, o filtro de expressão regular se aplica apenas ao arquivo imediatamente seguinte. Ao usar shell globs, isso resultaria na aplicação do filtro apenas ao primeiro arquivo na lista expandida de arquivos.

Para aplicar o filtro de expressão regular em todos os arquivos, a -Eopção deve ser usada:

-E Use a próxima expressão regular no seguintearquivos.

A -vopção que nega a expressão regular especificada deve funcionar da mesma maneira para qualquer uma dessas opções.

informação relacionada