Как загрузить несколько XML-файлов с разных URL-адресов

Как загрузить несколько XML-файлов с разных URL-адресов

@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

Связанный контент