gpt4 book ai didi

bash - 管道 View 循环序列(向 While 或 For 循环添加进度条)- Bash

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

如张贴 herehere ,pipeviewer 是一种根据其大小显示内容进度的工具。从那里可以看出,他们提出的问题是在没有数据量的情况下获得进程运行的进度条。

我想知道是否可以使用 pipeviewer 显示循环的进度,考虑到我正在从文件中读取它,并且我知道它的大小。

我正在尝试类似的东西
while IFS= read -r line;
do
<code>
done < file.txt | pv

这绝对行不通,因为 pv 只显示一个空的进度条。

有任何想法吗?

先感谢您!

最佳答案

如果可以,请使用 pv 阅读文件而不是 cat , 这样 pv 将自动获取文件大小并适本地格式化进度条。

例如:

pv very_big_file.txt

或者,在您的示例中:
pv file.txt | while IFS= read -r line;
do
<code>
done

如果您无法使用 pv 读取文件,您可以通过 pv文件大小 -s size .
这样, pv将期望流程为该长度,并与其成比例地格式化进度条。

您可以通过以下方式获取文件的大小:
stat -c '%s' file

或者
wc -c < file

例如:
command1 | command2 | ... | pv -s $(stat -c '%s' file) | commandX | ...

在你的例子中:
cat file.txt | pv -s $(stat -c '%s' file.txt) | while IFS= read -r line;
do
<code>
done

如您所见,使用 pv 是多余的就在 cat 之后,它应该被替换为 pv读取文件。

关于bash - 管道 View 循环序列(向 While 或 For 循环添加进度条)- Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32891137/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com