Você precisa adicionar stdbuf(1)
ao seu pipeline:
tail -f general.log | stdbuf -oL grep Some_word | tee -a todel.txt
Isso definirá o modo de buffer de fluxo stdout de grep
como buffer de linha, caso contrário, grep
espera obter pelo menos 4096 bytes do fluxo (esse é o padrão no Linux para E / S armazenada em buffer). / p>
Como alternativa, você também pode chamar grep
com --line-buffered
:
tail -f general.log | grep --line-buffered Some_word | tee -a todel.txt
Veja Desativar o armazenamento em buffer no canal e link para explicações detalhadas.