Tail, cat e grep um arquivo ao mesmo tempo

0

Então, eu preciso monitorar um arquivo de log no linux e gostaria de catar o conteúdo (para ver todas as entradas anteriores), bem como ajustar o arquivo de log ao mesmo tempo usando o grep para filtrar as coisas que eu quero ver do log. Além disso, seria bom se a cauda continuasse onde o comando cat parou de exibir entradas.

Como eu faria isso?

EDITAR:

Para deixar minha pergunta mais clara, aqui está o que eu quero:

log.txt:
Line 1 <--- Starting from here is what lines I need
Line 2
Line 3
Line 4
Line 5 <--- Here is where the tail command will start displaying
Line n - 1
Line n <--- Here is where the tail command will continue to go

Eu preciso ser capaz de pegar tudo isso e aplicá-lo.

    
por Toni Kostelac 21.12.2015 / 11:19

2 respostas

3

Eu não sei se é isso que você está procurando, mas você pode tentar isso:

grep "pattern you are looking for" log.txt;tail -n 0 -f log.txt | grep "pattern you are looking for"

está chamando dois comandos um após o outro. primeiro você grep o padrão que você está interessado no arquivo de log e, em seguida, você inicia tail -f no final do arquivo redirecionando a saída para o grep.

no entanto eu sugiro que você faça isso usando apenas um comando, você pode especificar o número de linhas a serem exibidas pela cauda usando o parâmetro -n (+1 significa a partir da primeira linha):

tail -n +1 -f log.txt | grep "pattern you are looking for"
    
por 21.12.2015 / 11:56
2

Eu gostaria de algo como

tail -f log_file | grep -E "^|your_pattern"

Teste-o abrindo duas guias.

No primeiro, execute este comando

while :; do echo "$v"; ((v++)); sleep 1; done > mytest

Ou seja, gere um fluxo contínuo adicionando um número a cada segundo em um arquivo mytest

Em seguida, na outra guia, diga

tail -f mytest | grep -E "^|2"

Ou seja, tail do arquivo continuamente e grep para dois padrões: ^ correspondendo a tudo e 2 . Dessa forma, ^ corresponde a todas as linhas que mostram todas as linhas e 2 corresponde exatamente às linhas que você deseja realçar. Mais informações sobre esse truque em "Grep" que destaca em vez de filtrar .

    
por 21.12.2015 / 11:27