下载文件列表并使用域名作为文件名

下载文件列表并使用域名作为文件名

我有一堆文件需要下载,它们非常适合

wget -i list_of_urls

但我的问题是,wget 使用下载文件的文件名。有没有办法(或其他工具)可以使用整个 url 作为文件名,例如

http://www.example.com/file1.html
http://www.example.com/file2.html

导向文件:

http___www_example_com_file_1.html
http___www_example_com_file_2.html  

答案1

使用一些简单的 bash 脚本。例如,如果您有一个文件“foo”,其 URL 如下:

http://www.google.com/index.html
http://www.cnn.com/index.html

您可以运行:

for i in `cat foo`; do wget $i -O `echo $i | sed 's/[^A-Za-z0-9]/_/g' | sed 's/_html$/.html/'`; done

产生

http___www_cnn_com_index.html
http___www_google_com_index.html

答案2

使用“-x” 选项记录在此处例如,给定一个文件“foo”,其内容为:

http://www.google.com/index.html
http://www.cnn.com/index.html

如果你跑

wget -x -i foo

然后你会得到这些文件:

www.google.com/index.html
www.cnn.com/index.html

相关内容