Shell-Script

如何實時更新wc -l

  • November 2, 2022

我有一個命令<streaming ls> | wc -l,它工作正常,但<streaming ls>需要一段時間,這意味著我要等幾分鐘後才能得到最終的行數。

有沒有辦法wc -l實時輸出更新?

您不能wc -l為此使用,但您可以使用其他工具(例如 AWK)生成執行的行數:

<streaming ls> | awk '{ printf "%d\r", NR } END { print }'

這將更新每次看到一行時看到的行數,並在程序結束時以總行數結束。

你可以pv用來給你一些進度報告:

cmd | pv -lbtr | wc -l
  • -l對於基於行的(報告行數而不是字節數)。
  • -b報告字節數(這裡的行是因為-l
  • -t報告花費的時間
  • -r報告目前速率(每秒行數;另請參閱-a平均速率)。

請注意,文件名可以由多行組成,因此除非您使用類似or的選項將文件名中的換行符轉義為or ,否則不能保證wc -l輸出為ls您提供文件計數。-b``-q``\n``?

引用自:https://unix.stackexchange.com/questions/723368