Я имею Files.txt
, который состоит из списка URL-адресов файлов Excel:Загрузить файлы, которые больше, чем определенный размер
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
. Особенно я не знаю, как извлечь и делает сравнение ...
Может ли кто-нибудь помочь?
Это слово нарушено хотя бы двумя способами: 'для i в $ BUFFER' подлежит расширению имени пути, а' Content-Lenght: 'может появляться в любом месте заголовка (как поле другого ключа) ... –
Также: 'grep | awk', как правило, плохая идея: 'awk '/^Content-Length:/{print $ 2; exit;}'' будет лучшей заменой. Кстати, пространство после двоеточия является необязательным, поэтому '$ 2' может работать или не работать ... –