4

У меня есть текстовый файл 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 ответ1

6

Если вы используете достаточно современный bash, вы можете использовать расширение оболочки следующим образом:

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

Выше будет пытаться получить image1.png вплоть до image99.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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .