我有一堆文件需要下载,它们非常适合
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