Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question

1 Answer 1

up vote 4 down vote accepted

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.

share|improve this answer
    
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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.