Как `wget` список URL-адресов в текстовом файле?

Скажем, у меня есть текстовый файл сотен URL-адресов в одном месте, например.

http://url/file_to_download1.gz
http://url/file_to_download2.gz
http://url/file_to_download3.gz
http://url/file_to_download4.gz
http://url/file_to_download5.gz
....

Каков правильный способ загрузки каждого из этих файлов с помощью wget? Я подозреваю, что есть команда вроде wget -flag -flag text_file.txt

Ответы

Ответ 1

Быстрый man wget дает мне следующее:

[..]

-i файл

- вход файл = файл

Чтение URL-адресов из локального или внешнего файла. Если - указано как файл, URL-адреса считываются со стандартного ввода. (Используйте./- для чтения из файла, буквально названного -.)

Если эта функция используется, URL-адреса не должны присутствовать в командной строке. Если в командной строке и во входном файле есть URL-адреса, то первые из них будут извлекаться. Если -force-html не указан, то файл должен состоять из серии URL-адресов, по одной на строку.

[..]

Итак: wget -i text_file.txt

Ответ 2

попробовать:

wget -i text_file.txt

(проверьте man wget)

Ответ 3

Если вы также хотите сохранить оригинальное имя файла, попробуйте с:

wget --content-disposition --trust-server-names -i list_of_urls.txt

Ответ 4

Если вы используете OpenWrt или используете старую версию wget, которая не дает вам -i:

#!/bin/bash
input="text_file.txt"
while IFS= read -r line
do
  wget $line
done < "$input"

Кроме того, если у вас нет wget, вы можете использовать curl или все, что вы используете для загрузки отдельных файлов.