Cauda -f canalizada através do grep não saindo para o arquivo, mas saídas para o console

5

Estou usando o seguinte comando

tail -f /mydir/myfile |  grep "searchterm" >> outfile

Sem o -f funciona bem, mas com o -f , que eu preciso, nada é gravado no arquivo. As seguintes saídas para o console muito bem

tail -f /mydir/myfile |  grep "searchterm"

O que preciso fazer para que meu comando grave corretamente em um arquivo?

    
por pyInTheSky 22.02.2013 / 23:52

2 respostas

8

Se você tem o GNU grep :

tail -f /mydir/myfile |  grep --line-buffered "searchterm" >> outfile

Qual escreverá cada linha, para uma penalidade de desempenho.

Como alternativa, aguarde mais resultados. Se você estiver eliminando os processos, apenas mate o processo tail e o buffer deverá liberar antes de grep sair.

    
por 23.02.2013 / 00:05
1

O grep está armazenando a saída talvez, fazendo parecer que não há nenhuma? Experimente:

tail -f /mydir/myfile | grep --line-buffered "searchterm" >> outfile
    
por 22.02.2013 / 23:58