arquivo tail -va enquanto exclui uma lista de palavras

arquivo tail -va enquanto exclui uma lista de palavras

Gostaria de acompanhar um arquivo de log que está sendo gravado continuamente, mas gostaria de excluir várias entradas que são 'comuns', para que só veja erros, etc., à medida que são lançados. Posso canalizar para grep -v "pattern", mas o ideal seria usar um arquivo contendo entradas para pular. Alguma ideia?

Responder1

Você pode usar grep -v "pattern"como você disse. Mas em vez de patternusar

`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`"

Responder2

A -fopção greppermite especificar um arquivo contendo padrões, um padrão por linha. Veja a grep(1)página de manual.

Além disso, o unbuffercomando disponível em alguns sistemas desabilitará o buffer de saída que normalmente ocorre em pipelines. Caso contrário, a adição do grepfiltro poderá atrasar a saída do seu pipeline. Consulte a unbuffer(1)página de manual para obter detalhes.

Responder3

Meu grep inclui uma --exclude-from=FILEopção que 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

Responder4

Tente usar: grep -v -f EXCLUDE_FILENAME_LIST TARGET_FILENAME

EXCLUDE_FILENAME_LIST = Lista de palavras que você deseja extrair da sua pesquisa TARGET_FILENAME = O arquivo primário que você deseja obter

informação relacionada