1

我目前正在尝试使用我制作的一个小脚本来抓取网站的图像:

for url in $my_url/{1..100}'.png' 
do
    wget "$url" || break
done

快速的是,有时,图像被命名为 1.png 或 01.png 或 001.png

所以我想尝试下载每个名称的图像,以免错过任何图片。

就像是 :

for url in $my_url/{1..100}{01..100}{001..100}'.png' 

谢谢您的帮助 !

4

3 回答 3

1

您需要复制它们:

for url in "$my_url"/{1..100}.png "$my_url"/{01..100}.png "$my_url"/{001..100}.png

或者,使用数组有助于提高可读性

urls=( 
    "$my_url"/{1..100}.png 
    "$my_url"/{01..100}.png 
    "$my_url"/{001..100}.png
)
for url in "${urls[@]}"; do ...
于 2018-04-24T19:39:35.830 回答
1

您可以嵌套大括号扩展:

url="http://example.com/"
printf '%s\n' "$url"{{0..9},{00..99},{000..100}}.png
于 2018-04-24T19:49:56.810 回答
0

尝试将所有内容包装在创建多种零填充格式的 for 循环中:

for format in %01g %02g %03g
  do for num in $(seq -f $format 1 100)
    do wget ${my_url}/${num}.png || break  
  done  
done

您也可以使用 printf,但需要使用不同的语法,如此处所示

于 2018-04-24T18:48:47.230 回答