Você pode usar tee
com substituição de processo >()
:
tail -f -n 20 file.log | tee >(grep 'pattern')
Isso mostrará as últimas 20 linhas de file.log
e, em seguida, o resultado de grep
.
eu posso fazer tail -f -n20 <file>
para ver as últimas 20 linhas do arquivo, ao vivo.
Se eu quiser falar algo,
tail -f <file> | grep <pattern>
, ele ainda estará vivo, mas irá apenas passar pela saída da cauda, o que significa que não tenho 20 linhas de saída em primeiro lugar. (se apenas 5 de 20 linhas corresponderem ao meu padrão, eu só recebo 5 linhas de saída)
Se eu fizer algo como
grep <pattern> <file> | tail -n20
Eu tenho 20 linhas de saída, mas não é ao vivo, nem é
cat <file> | grep <pattern> | tail -n20
Como posso ver uma atualização ao vivo das últimas n linhas de um arquivo após grepping?
Você pode usar tee
com substituição de processo >()
:
tail -f -n 20 file.log | tee >(grep 'pattern')
Isso mostrará as últimas 20 linhas de file.log
e, em seguida, o resultado de grep
.