Как `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
или все, что вы используете для загрузки отдельных файлов.