Многократное расширение скобки в URL-адресе wget
В настоящее время я пытаюсь очистить изображения веб-сайта с помощью небольшого сценария, который я сделал:
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'
Спасибо за помощь!
3 ответа
Решение
Попробуйте обернуть все в цикл 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, но вам нужно будет использовать другой синтаксис, как показано здесь.
Вы можете вкладывать расширения скобок:
url="http://example.com/"
printf '%s\n' "$url"{{0..9},{00..99},{000..100}}.png
Вам нужно продублировать их:
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 ...