# Pipe and watch piped output?

I want to make a shell-pipe like this:

producer | analyser > report.txt


and watch the output of producer while it is generating data (a big log-file) for analysis.

How can I do that?

-

In /bin/sh and compatibles:

producer | tee /dev/fd/3 | (analyser > report.txt) 3>&1


I've tested this only on Linux and Cygwin. On some Unix-likes you may have to change /dev/fd/3 to whatever their equivalent is.

-
that will show and save the output of analyser, right? I want to see the output of producer. –  Bastl Feb 10 '12 at 12:12
sorry - better now? –  reinierpost Feb 10 '12 at 12:14
That will save producer's output to report.txt and I'd have to watch it using "tail -F". Not exactly what I wanted... –  Bastl Feb 10 '12 at 12:16
Fixed once again. I should learn to actually read stuff before replying. –  reinierpost Feb 10 '12 at 12:25
On Ubuntu, I had to use /dev/fd/2 for stdout. Thanks! –  Bastl Feb 10 '12 at 13:33