<streaming ls> | wc -l
正常に動作するコマンドがありますが、少し<streaming ls>
時間がかかります。つまり、数分後に最終行数を取得できます。
wc -l
リアルタイムでアップデート出力を取得する方法はありますか?
ベストアンサー1
この目的には使用できませんが、wc -l
他のツール(AWKなど)を使用して表示される行の累積数を生成できます。
<streaming ls> | awk '{ printf "%d\r", NR } END { print NR }'
これは、行が表示されるたびに表示される行数を更新し、プロセスの終わりに行の総数で終わります。
出力量の多いコマンドの場合は、各コマンドを印刷してオーバーヘッドを減らすことができます。Nライン:
… | awk 'NR % 10 == 0 { printf "%d\r", NR } END { print NR }'
(のためN= 10)または毎秒印刷します。
… | awk 'systime() > lasttime { lasttime = systime(); printf "%d\r", NR } END { print NR }'
(またはN条件を>= lasttime + n
)秒に変更します。