获取文件名中仅在图像编号上不同的多幅图像的更优化方法

获取文件名中仅在图像编号上不同的多幅图像的更优化方法

download-list.txt我有一个如下所示的文本文件:

http://www.example.com/file/image1.png
http://www.example.com/file/image2.png
http://www.example.com/file/image3.png
.
.
.

要下载列表中的文件,我运行

wget -i download-list.txt

是否有一个 wget 魔法可以使用,而不需要我制作这样的列表?

答案1

如果你正在使用一个相当现代的 bash,那么你可以使用 shell 扩展,如下所示:

wget http://www.example.com/file/image{1..99}.png

上面的命令会尝试一直到达image1.pngimage99.png显然,请根据需要选择范围。不存在的文件会抛出错误,但不会导致实际问题。如果您愿意,可以使用某些 wget 选项或通过将 STDERR 重定向到 /dev/null 来抑制错误:

wget http://www.example.com/file/image{1..99}.png 2> /dev/null

对于真正大量的文件,您可能会遇到命令行的限制 - 命令行上可以有的最大参数数量。您不太可能遇到这个问题,但如果您要处理大量文件,for 循环可能更安全:

for f in {1..1000}; do wget http://www.example.com/file/image$f.png; done
##  and the version sending STDERR to /dev/null:
for f in {1..1000}; do wget http://www.example.com/file/image$f.png 2> /dev/null; done

相关内容