Eu uso isso para verificar as linhas de log de um arquivo de log até a ocorrência de um evento específico (retirado desta resposta para Monitorando um arquivo até que uma string seja encontrada ):
(tail -f -n 0 test.log &) | grep -q 'SPEFICIC LOG MESSAGE'
Isso funciona, mas também quero que as linhas de log sejam impressas em stdout enquanto aguardo o evento. Estou procurando algo como tee
, mas quero imprimir e canalizar ao mesmo tempo.
Eu tentei esta resposta para Pipe e observei a saída canalizada? , levando a:
(tail -f -n 0 test.log &) | tee /dev/fd/2 | grep -q 'SPEFICIC LOG MESSAGE'
mas o comando nunca é encerrado, presumivelmente porque grep
falha ao interromper tail
quando encontra uma correspondência, tail
continuando a fornecer dados para tee
?