如何让 cURL 不显示进度条但仍提供统计信息?
Posted
技术标签:
【中文标题】如何让 cURL 不显示进度条但仍提供统计信息?【英文标题】:How do I get cURL to not show the progress bar but still give statistics? 【发布时间】:2019-05-01 20:05:44 【问题描述】:请注意,此问题与 How do I get cURL to not show the progress bar? 明显不同,尽管此问题的有效答案可能足以满足 this comment 的其他问题。
我有一个脚本将 cURL 的 stderr
记录到文件中。我们将以此为例:
curl -Lo /dev/null ***.com 2>/tmp/foo
当我检查那个文件时,它看起来像这样:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
^M 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0^M100 143 100 143 0 0 1190 0 --:--:-- --:--:-- --:--:-- 1191
^M 97 244k 97 239k 0 0 688k 0 --:--:-- --:--:-- --:--:-- 688k^M100 244k 100 244k 0 0 701k 0 --:--:-- --:--:-- --:--:-- 4974k
这对我来说完全是垃圾。我想要没有动画进度条的统计数据。我可以用一些标准的 unix 工具来解析它。但是,我在想也许一些参数和/或 termcap/terminfo 的组合也可以工作。
请指教。
这个简单的后期处理可以工作,因为它不是动画:
head -n2 /tmp/foo; tail -n1 /tmp/foo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 245k 100 245k 0 0 393k 0 --:--:-- --:--:-- --:--:-- 393k
【问题讨论】:
我推荐the -w option在传输后提取信息。 【参考方案1】:如果我没有得到更好的建议,我会接受这个:
$ curl -Lo /dev/null --stderr >(awk 'END print "Downloaded", $2, "of", $4, "at", $7"bps"' >/tmp/foo) ***.com
$ cat /tmp/foo
Downloaded 245k of 245k at 472kbps
【讨论】:
以上是关于如何让 cURL 不显示进度条但仍提供统计信息?的主要内容,如果未能解决你的问题,请参考以下文章