Provável grep
está detectando que não está gravando em um TTY, então ele armazena mais saída, em vez de operar em seu modo usual de buffer de linha (ou seja, você vê cada linha conforme ela é encontrada). Esse comportamento é mais eficiente, pois resulta em menos write()
de chamadas do sistema, mas se você for um usuário que está esperando por uma saída com pipelining, isso pode ser um pouco enganoso.
Se você estiver usando o GNU grep
(e com base na sua tag linux, suponho que você esteja), confira a opção --line-buffered
, que forçará grep
a trabalhar no modo buffer de linha mais familiar . Isso pode reduzir tecnicamente o desempenho de grep
(como observado na man page), mas como você está vendo a saída de uma compilação ao vivo, duvido que faça alguma diferença a esse respeito.