tail -v um arquivo excluindo uma lista de palavras

2

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?

    
por John 08.10.2010 / 23:00

4 respostas

4

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'"
    
por 08.10.2010 / 23:12
2

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.

    
por 08.10.2010 / 23:12
0

Use grep -f FILE e ele obterá padrões desse arquivo. Consulte a página de manual para obter mais informações.

    
por 08.10.2010 / 23:12
0

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
    
por 08.10.2010 / 23:15

Tags