Axel-command-line-downloader 只显示进度吗?

Axel-command-line-downloader 只显示进度吗?

有没有办法隐藏 axel 命令的所有输出,但不要隐藏progress bar。我想要获得类似的输出;

[  5%] [0            1           2            3           ] [  567,5KB/s] [15:59]

这是输出,axel -a但它总是打印每一步,尽管我编辑了 ~/.axelrc 和 /etc/axelrc,我将其更改# verbose = 10 。我不想像 那样将其发送到背景command &。你有什么想法吗?请不要在 wget 中提出建议,wget我可以用它,-nv --show-progress但没有 axel 的选项。

答案1

bash终端中,您可以使用:

axel -a http://url | awk -W interactive '$0~/\[/{printf "%s'$'\r''", $0}'

使用-W interactiveawk 读取行缓冲并将非缓冲内容写入 stdout。然后在行中awk搜索并用字符打印出来。[^M$'\r'

您还可以为此编写一个函数:

function axel_progress {
  axel -a "$1" | awk -W interactive '$0~/\[/{printf "%s'$'\r''", $0}'
}

现在您可以axel通过以下方式致电:

axel_progress http://url 

相关内容