如何在文本文件中“ 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的命令

169833 次浏览

尝试:

wget -i text_file.txt

(检查人 wget)

快速 man wget给我以下信息:

[..]

我是 文件

—— input-file = 文件

从本地或外部文件读取 URL。如果-指定为文件,则从标准输入读取 URL。(使用。/-从名为-的文件中读取。)

如果使用此函数,则命令行上不需要显示 URL。如果命令行和输入文件中都有 URL,那么命令行中的 URL 将是第一个被检索到的 URL。如果没有指定—— force-html,那么文件应该包含一系列 URL,每行一个。

[..]

所以: wget -i text_file.txt

如果还希望保留原始文件名,请尝试使用:

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

如果你在使用 OpenWrt或者使用一些旧版本的 wget,这些版本没有提供 -i选项:

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

此外,如果您没有 wget,您可以使用 curl或任何您用来下载个别文件。

并行运行它

cat text_file.txt | parallel --gnu "wget {}"