你不能像通過grep的進度信息;它沒有任何意義。
curl
寫入進度條到stderr,所以你要重定向到標準輸出,然後才能用grep顯示它:
$ curl -# -o f1.flv 'http://osr.com/f1.flv' 2>&1 | grep 1 | less
結果:
^M 0.0
%^M######################################################################## 100.
0%^M######################################################################## 100
.0%^M######################################################################## 10
0.0%
你期待的數字不斷流,你是否在其他地方重新定向?或者你希望在一個點上獲取數字?
如果是前者,這類的小檔案半assedly作品:
$ curl -# -o f1.flv 'http://osr.com/f1.flv' 2>&1 | sed 's/#//g' -
100.0% 0.0%
但它是在一個大的文件也沒用。在下載完成之前,輸出不會打印,可能是因爲curl似乎正在將^ H發送到終端。可能有更好的方法來sed
它,但我不會屏住呼吸。
$ curl -# -o l.tbz 'ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2009/06/2009-06-02-05-mozilla-1.9.1/firefox-3.5pre.en-US.linux-x86_64.tar.bz2' 2>&1 | sed 's/#//g' -
100.0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
啊我看到了,重定向輸出,所以我可以真正看到它。我希望只是提取數字,因爲他們看起來像你說的(前者)。我嘗試了上面的內容,但是隻有在達到100%時纔會得到輸出 - 也許我需要更大的文件才能看到進度變化? – Abs 2009-07-15 17:07:06
Curl的輸出是爲了讓人們閱讀,而不是通過計算機 - 這就是爲什麼當grep輸入時格式很糟糕。使用`wget --progress = dot`並計算點數可能會更好,但這也不是百分比。或者,也許你可以只計算卷標輸出中的#。至少你會得到5-10%的準確度,或者是否有很多#適合終端,對吧? – 2009-07-15 17:12:46