如何监控长 运行 命令的进度?

How to monitor progress of a long running command?

我有一个很长的 运行 脚本,它在运行时会输出很多日志行。我的具体任务是计算 50K 文件中的行数,总共 2TB 的数据。但是,这个问题也适用于 运行 长 make 或安装脚本。

如何在一行中显示长 运行 脚本的进度(即重复使用同一行)?

[已编辑]

如果行数足够,并且不需要实际百分比,这个简单的 awk 单行代码就可以了:

awk '{printf "\r%s", NR}'

当 运行 make 时:

make | awk '{printf "\r%s", NR}'

请注意 printf 格式开头的 \r - 它将插入符号倒回到行的开头,重新使用该行。