Faça um loop em vários números para baixar com o wget

11

Como posso escrever um script bash que faça o seguinte:

URL = "example.com/imageID="
while (1..100)
   wget URL + $i #it will wget example.com/imageID=1, then 2, then 3, etc
done

Então, eu tenho um número de loops para executar, uma URL que termina com um número do loop. Eu preciso de wgettudo isso.

Szymon Toda
fonte

Respostas:

19

se você estiver usando o Bash 4.0, poderá fazer o seguinte:

wget example.com/imageId={1..100}.jpg
CC
fonte
10

É bastante fácil, mesmo para alguém com pouca experiência em programação. Em caso de dúvida, leia sempre o manual do Bash :

for i in {1..100}
do
    wget "example.com/imageID=$i"
done
Canha
fonte
Por uma questão de princípio, você deve incluir as $iaspas:wget "example.com/imageID=$i"
Scott
isso provavelmente funciona muito bem. no entanto, começo de "00008000" e o wget dispara erros porque, para alguns, ignora os quatro primeiros zeros.
esaruoho 10/12/19
-1

Caso a variável não esteja no final do URL e a variável esteja entre os sublinhados:
example.com/imageID_1_2018.gif
example.com/imageID_2_2018.gif
example.com/imageID_3_2018.gif
.
.
.
example.com/imageID_100_2018.gif

wget example.com/imageID_{1..100}_2018.gif
equivalentemente:
for ((i=1;i<=100;i++)); do wget example.com/imageID_${i}_2018.gif; done

Vassil
fonte
3
Bem-vindo ao superusuário. Por favor edite sua resposta para fornecer mais detalhes. Nem todo mundo que lê sua postagem pode entender como ela responde à pergunta do OP sem uma explicação mais detalhada.
Eu digo Restabelecer Monica
1
Não tenho certeza se isso é uma resposta. Parece uma explicação da resposta aceita (e não muito clara).
Scott Scott