grep
buffers output se não gravar em um terminal. Você pode usar grep --line-buffered
para produzir cada linha imediatamente. Considere:
executa o comando de saída lenta e o grep para o terminal:
$ for i in {1..3}; do
> echo printing >&2
> echo to grep
> sleep 1
> done | grep to
printing
to grep
printing
to grep
printing
to grep
executa um comando de saída lenta e o grep para cortar:
$ for i in {1..3}; do
> echo printing >&2
> echo to grep
> sleep 1
> done | grep to | cut -d" " -f1-2
printing
printing
printing
to grep
to grep
to grep
executa o comando de saída lenta e o grep para cortar usando a opção --line-buffered
:
$ for i in {1..3}; do
> echo printing >&2
> echo to grep
> sleep 1
> done | grep --line-buffered to | cut -d" " -f1-2
printing
to grep
printing
to grep
printing
to grep