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.

Respostas:


19

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

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

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

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.