如何获取cURL以不显示进度栏,但仍提供统计信息?

时间:2018-11-29 17:24:07

标签: curl

请注意,尽管该问题的有效答案可能足以解决How do I get cURL to not show the progress bar?,但该问题与this comment完全不同。

我有一个脚本,它将cURL的stderr记录到文件中。我们以这个为例:

curl -Lo /dev/null stackoverflow.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

1 个答案:

答案 0 :(得分:0)

如果没有更好的建议,我将为此解决:

$ curl -Lo /dev/null --stderr >(awk 'END {print "Downloaded", $2, "of", $4, "at", $7"bps"}' >/tmp/foo) stackoverflow.com
$ cat /tmp/foo
Downloaded 245k of 245k at 472kbps