@slhck дал полезный ответ на аналогичный вопрос.
Загрузка нескольких файлов с помощью wget и обработка параметров
Этот код был предоставлен для чтения URL-адресов из текстового файла.список файлов, затем запустите цикл для загрузки каждого.
#!/usr/bin/env bash
while read line
do
wget -c --load-cookies cookies.txt $line -O ${line##*/}
done < filelist
Поскольку я не знаком со скриптами оболочки, мне интересно, можно ли загрузить несколько XML-файлов следующим образом:
- создание простого текстового файла, разделенного запятымисписок файлов
- читать из:
список файлов
переименованныйfile.xml, url-01.php
переименованныйFileDifferent.xml, url-02.php
конкретныйFileRename.xml, "url-03"
новыйFilename.xml, "url-04"
- прочитайте каждую строку
- разделить строку на newfile, remoteFile
И запустите:
wget -O newfile remoteFile >/dev/null 2>&1
Можно ли это написать в скрипте оболочки? Можете привести пример?
решение1
Чтобы получить текст перед запятой, используйте ${line/,*}
.
(На самом деле это заменяет ",*" иливесь текст от запятой и далееспустая строка- оставляя только часть строки перед запятой)
Чтобы получить текст после запятой, используйте ${line/*,}
.
Таким образом, полная команда будет выглядеть так:
while read line
do
wget -O ${line/,*} ${line/*,} >/dev/null 2>&1
done < filelist
или, в одной строке:
while read line; do echo wget -O ${line/,*} ${line/*,} >/dev/null 2>&1; done < filelist
В Windows (при условии, что вы установили wget, изhttp://gnuwin32.sourceforge.net/packages/wget.htm, и правильно укажите путь), это будет:
for /f "delims=, tokens=1*" %a in (filelist) do wget -O %a %b