特定のプログラムによって生成された出力行数を計算しようとしています。問題は、プログラムの実行に時間がかかり、出力をユーザーに表示したいということです。最後のコマンドで出力された行数を計算する方法はありますか?
これは可能ですが、program | wc -l
ユーザーに出力は表示されません。私が知っている限り、これを行う必要がありますprogram; program | wc -l
が、プログラムを実行するのに少なくとも1分かかりますので、一番下に行数を表示するためにこれを何度も実行する必要はありません。
編集する:
- 出力を1行ずつ表示してから最後に数を返す方法はありますか?
ベストアンサー1
tee
出力ストリームを通常のように分割して、1つのコピーをSTDOUTに送信し、wc
もう1つをSTDOUTに送信できます。
program | tee >(wc -l)
bash構文は>(cmd)
、実行してそのビットをプログラムの接続された名前付きパイプ(STDIN)パスに置き換えることを意味しますcmd
。>(cmd)