![Aplicar filtragem multitail a muitos arquivos passados via curinga](https://rvso.com/image/164737/Aplicar%20filtragem%20multitail%20a%20muitos%20arquivos%20passados%20%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8Bvia%20curinga.png)
multitail
possui 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 -ev
opçã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 -ec
opçã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 paramultitail
define a -e
opçã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 -E
opção deve ser usada:
-E
Use a próxima expressão regular no seguintearquivos.
A -v
opção que nega a expressão regular especificada deve funcionar da mesma maneira para qualquer uma dessas opções.