gpt4 book ai didi

bash - 监控 xargs 内的进度

转载 作者:行者123 更新时间:2023-12-04 00:43:29 25 4
gpt4 key购买 nike

是否有任何方法可以在 xargs 内跟踪或监控进度?

我正在更换 for循环 find … | xargs性能(特别是并行运行任务)。我读过 parallel有一个进度标志,但我想知道是否有办法严格使用 xargs 来实现这一点。 .

我也知道任务通过 xargs 并行运行不一定以正确的顺序完成,这增加了监控进度的复杂性。即使解决方案能让我大致了解进展情况,那也将是一个很好的开始。

最佳答案

如果您只想输入您粗略处理过的行数,您可以创建简单的 shell 函数来执行此操作

#!/bin/bash

#-----
##
## @function count
##
## @desc Write every n'th number (if n is 5 write 5, 10, 15, ...)
##
## @param $1 - number
##
#-----
function count {
typeset C=0
while read L; do
C=$(( C + 1 ))
if [ $(( $C % $1 )) -eq 0 ]; then
echo $C 1>&2
fi
echo "$L"
done
}

find . | count 100 | xargs ...

小问题是这会打印传递给 xargs 的行数,而不是已被 xargs 调用的命令处理的行数。另外,每个管道都有一些缓冲区,所以它显示的数字会比它应该显示的数字略高。在我的机器上,它提前显示了大约 500 行到真实状态,但如果您处理的行数足够多,500 行可以忽略不计:)

关于bash - 监控 xargs 内的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15778141/

25 4 0
文章推荐: html - 如何在 AngularJS 的选择中添加空选项?
文章推荐: html - 是否可以在一个