2009-02-27 6 views
0

J'essaie de compter les lignes d'une commande et j'aimerais aussi voir les lignes au fur et à mesure. Ma première pensée était d'utiliser la commande tee:Comment imprimer les résultats intermédiaires d'un pipeline à l'écran?

complicated_command | tee - | wc -l 

Mais ce double simplement le nombre de lignes en utilisant GNU tee ou à la sortie des copies à un fichier nommé - sur Solaris.

+0

Ah. Mes recherches n'ont pas réussi à trouver cette question. –

+0

La recherche n'est jamais parfaite, surtout avec ce type de commande. –

+0

Nous avons maintenant un nouvel ensemble de mots-clés. ;-) –

Répondre

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

Mais gardez à l'esprit que si vous le mettez dans un script et redirigez la sortie, il ne le fera pas ce que tu attends

+0

Merci. Je me demande pourquoi je ne savais pas que/dev/tty pointe sur mon nom de terminal. Heureux j'ai demandé depuis que cela réduit un peu mon code. –

+0

Oui,/dev/tty est un alias pour votre tty actuel. C'est très utile comme ça. –

1

La solution est de tee à la console directement par opposition à STDOUT:

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