2009-02-27 12 views
0

Ich versuche, die Zeilen von einem Befehl zu zählen, und ich möchte auch die Zeilen sehen, wie sie vorbei gehen. Mein erster Gedanke war, den tee Befehl zu verwenden:Wie kann ich Zwischenergebnisse aus einer Pipeline auf den Bildschirm drucken?

complicated_command | tee - | wc -l 

Aber das einfach verdoppelt sich die Zeilenzahl GNU mit tee oder Kopien Ausgabe in eine Datei - auf Solaris benannt.

+0

Ah. Meine Suche konnte diese Frage nicht finden. –

+0

Die Suche ist nie perfekt, besonders bei dieser Art von Befehl. –

+0

Jetzt haben wir eine neue Reihe von Schlüsselwörtern. ;-) –

Antwort

4
complicated_command | tee /dev/tty | wc -l 

Aber bedenken Sie, dass, wenn Sie es in einem Skript setzen und die Ausgabe umleiten, wird es nicht tun was du erwartest.

+0

Danke. Ich frage mich, warum ich nicht wusste, dass/dev/tty auf meinen Terminalnamen verweist. Froh, dass ich gefragt habe, denn das reduziert meinen Code ein bisschen. –

+0

Ja,/dev/tty ist ein Alias ​​für deine aktuelle tty. Es ist sehr nützlich so. –

1

Die Lösung ist tee an die Konsole direkt zu STDOUT Gegensatz:

tty=`tty` 
complicated_command | tee $tty | wc -l