Eu sei que estou atrasado para a festa, mas acredito que tenho uma boa resposta que pode melhorar esse segmento útil.
Esta é uma mistura de respostas de @Phil P e @David Spillett, mas:
- diferentemente do @Phil P, evita criar um novo arquivo
- diferentemente do @David Spillett, ele mantém a estrutura de pipeline
A contagem de bytes é impressa no stdout, junto com qualquer saída de process_b.
Você pode usar um prefixo para identificar a linha contendo bytes ao trabalhar com a saída ( Bytes: no exemplo).
exec 3>&1
process_a | tee >({ echo -n 'Bytes:'; wc -c; } >&3) | process_b
exec 3>&-
AVISO:
Não confie na ordem das linhas na saída |
A ordem é imprevisível e sempre pode ser diferente, mesmo ao chamar o mesmo script com os mesmos parâmetros!