Existe alguma outra maneira de usar tail -f para grep -q && operation?

1

Eu encontrei esta solução: link

mas existe algum outro possível?

UPD: Eu quero fazer tail -f | grep -q something && echo 'found!' mas não funciona porque tail -f impede que o pipe seja fechado, então o comando echo não tem chance de ser executado.

    
por Community 31.05.2012 / 17:32

2 respostas

2

Tente por sua conta e risco:

tail -n 0 -f /tmp/bar | { grep -q -m1 zoo && echo found ; pkill -P $$ '^tail$' ; }

O comando pkill é necessário se a correspondência estiver na última linha. Mas pode matar outro processo tail em segundo plano, se houver, do mesmo pai.

    
por 31.05.2012 / 18:46
1

Acredito que você queira usar as opções grep -q ou -m . Se você quiser realmente ver a linha correspondente, use -m1 , que imprimirá a linha e sairá (enviando um SIGPIPE para tail , fazendo com que ele saia). Se você não se importar em ver a linha, use -q , que sairá apenas quando encontrar a primeira ocorrência.

    
por 31.05.2012 / 18:06

Tags