Recorre un rango de números para descargar con wget

11

¿Cómo puedo escribir un script bash que haga lo siguiente?

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

Así que tengo varios bucles que realizar, una URL que finaliza con un número del bucle. Necesito wgettodo esto.

Szymon Toda
fuente

Respuestas:

19

Si está utilizando Bash 4.0, puede hacer esto:

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

Es bastante fácil, incluso para alguien con poca experiencia en programación. En caso de duda, siempre lea el manual de Bash :

for i in {1..100}
do
    wget "example.com/imageID=$i"
done
Canha
fuente
Como cuestión de principio, debe incluir $ientre comillas:wget "example.com/imageID=$i"
Scott
Esto probablemente funciona muy bien. sin embargo, comienzo desde "00008000" y el wget dispara errores porque, por alguna razón, omite los primeros cuatro ceros.
esaruoho
-1

En caso de que la variable no esté al final de la URL y la variable esté entre guiones bajos:
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
fuente
3
Bienvenido a Super User. Por favor, editar su respuesta a proporcionar más detalles. No todos los que leen su publicación pueden entender cómo responde la pregunta del OP sin una explicación más detallada.
Digo reinstalar a Mónica el
1
No estoy seguro de que esta sea una respuesta. Parece una explicación de la respuesta aceptada (y no muy clara).
Scott