我有Files.txt
,其中包括Excel文件的URL列表的更大的文件:下載是不是一定規模
http://www.bcheadset.ca/applicant.xlsx
http://www.bcheadset.ca/fte.xlsx
http://www.iutox.org/TRTF_Matrix2012_Oct.xlsx
http://www.journalprices.com/2013_FinalSummaryForWeb.xlsx
http://www.camts.org/7__2013_Aircraft_Checklist.xlsx
http://www.nanotr11.org/poster_program.xlsx
http://www.vliruos.be/media/6352100/nss2015_annex_3_budget.xlsx
...
我想要做的就是下載(通過wget的)的文件大於10Mo
。
要在下載文件之前驗證文件是否大於10Mo
,我們可以使用curl --head
。例如,curl --head http://www.bcheadset.ca/fte.xlsx
返回
HTTP/1.1 200 OK
Content-Length: 3158847
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Last-Modified: Mon, 27 Jul 2015 22:16:45 GMT
Accept-Ranges: bytes
ETag: "ffb49fecb9c8d01:c05"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Tue, 06 Oct 2015 15:14:27 GMT
而且從Content-Length
,我們可以驗證它比10Mo
更大。
我的問題是如何通過一塊Bash
或Perl
自動化。特別是我不知道如何提取Content-Length
並做比較...
任何人都可以幫忙嗎?
這在至少兩種方式中被破壞:'對於$ BUFFER中的i'受到路徑名擴展的限制,並且'Content-lenght:'可能出現在頭部的任何地方(作爲另一個鍵的字段)... –
另外:'grep | awk'通常是個不錯的主意:'awk'/^Content-Length:/ {print $ 2; exit;}''將會是一個更好的替代品。順便說一句,冒號後面的空格是可選的,所以'$ 2'可能會或可能不會工作...... –