Um dos argumentos para o tr
comando é:
-u
Garanta que qualquer saída seja sem buffer.
Em que circunstâncias é uma boa ideia não armazenar em buffer a saída?
por exemplo, devo usar -u
se espero que cada linha seja super longa?
por exemplo, devo usar -u
se estou com restrição de memória?
por exemplo, se eu canalizar isso awk
(que processa os arquivos linha por linha), isso significa que é melhor usar a saída em buffer?
A saída sem buffer é menos eficiente, portanto, se houver muito, será mais lenta. A saída sem buffer poderia fazer uma chamada de sistema para cada caractere (embora geralmente não).
A vantagem é que você obtém a saída imediatamente, em vez de quando o buffer fica cheio e é liberado. Para saídas lentas (como uma linha ou menos de cada vez) e visualizadas interativamente, isso seria melhor.
No Unix, a saída é normalmente armazenada em buffer de bloco ou em buffer de linha e, raramente, sem buffer.
Você pode alterar o padrão de um comando com o
stdbuf
comando, que faz parte do GNU coreutils.