Você pode usar grep -v "pattern"
como você disse. Mas em vez de pattern
use
'cat file_with_entires_to_skip'
Lembre-se de incluir os backtics. Então, seu comando ficaria assim:
tail -v FILE | grep -v "'cat FILE_WITH_ENTRIES_TO_SKIP'"
Eu gostaria de seguir um arquivo de log que está sendo escrito continuamente, mas gostaria de excluir várias entradas que são "comuns", para que eu só veja erros, etc., conforme eles são lançados. Eu posso canalizar para grep -v "padrão", mas seria ideal para usar um arquivo contendo entradas para pular. Alguma idéia?
Você pode usar grep -v "pattern"
como você disse. Mas em vez de pattern
use
'cat file_with_entires_to_skip'
Lembre-se de incluir os backtics. Então, seu comando ficaria assim:
tail -v FILE | grep -v "'cat FILE_WITH_ENTRIES_TO_SKIP'"
A opção -f
para grep
permite especificar um arquivo contendo padrões, um padrão por linha. Veja a página grep(1)
man.
Além disso, o comando unbuffer
disponível em alguns sistemas desativará o buffer de saída que normalmente ocorre em pipelines. A adição do filtro grep
pode atrasar a saída do seu pipeline. Veja a página unbuffer(1)
man para detalhes.
Use grep -f FILE
e ele obterá padrões desse arquivo. Consulte a página de manual para obter mais informações.
Meu grep inclui uma opção --exclude-from=FILE
que me permite adicionar padrões de exclusão de um arquivo. Eu tenho:
my-macbook-pro:Sun America ianchesal$ grep --version
grep (GNU grep) 2.5.1
Então você poderia fazer:
tail -f <file> | grep --exclude-from=excludes.txt