Как объединить опции '-i file' и '-O filename' из wget?

wget можно загрузить с помощью -i inputFileURLList а также использовать имя пользовательского файла с -O customArbitraryFileName .

Как я могу объединить эти две возможности, чтобы я подавал их с помощью файла, содержащего список URL-адресов, с пользовательским именем файла для каждого?

  • Как работать с отсутствующими заголовками «последнего изменения»?
  • Как загрузить все файлы, перечисленные в массиве?
  • Устранение неполадок `$ wget -A.pdf -r site.com`
  • Как загрузить файл на веб-странице, которая не является прямой ссылкой, но javascript click.submit ()?
  • Доступ к Google-трансляции через wget
  • wget-файлы по шаблону только из указанных каталогов рекурсивно
  • Wget не будет рекурсивно загружать
  • «Wget -restrict-file-names = windows», похоже, не удалось преобразовать ссылки для NTFS
  • 2 Solutions collect form web for “Как объединить опции '-i file' и '-O filename' из wget?”

    Напишите свой собственный тривиальный сценарий оболочки и используйте его как ./get-them.sh < get-then.list

    скрипт оболочки get-them.sh

     #!/bin/sh while read FILE URL; do wget -O "$FILE" -- "$URL" done 

    входной файл get-them.list

     file1 https://unix.stackexchange.com/ file2 https://stackexchange.com/ 

    Предполагая, что входной файл выглядит

     http://url.to.import file.to.save.as 

    для обработки входного файла один раз:

     { IFS= read -r url; IFS= read -r filename; } < input.file wget -i "$url" -O "$filename" 

    Я использую фигурные скобки, поэтому команды чтения выполняются в текущей оболочке, и, следовательно, переменные существуют в текущей оболочке.

    Если вам отчаянно нужен однострочный

     wget -i "$(sed -n 1p input.file)" -O "$(sed -n 2p input.file)" 
    Linux и Unix - лучшая ОС в мире.