Durchlaufen Sie eine Reihe von Zahlen, die Sie mit wget herunterladen möchten

11

Wie kann ich ein Bash-Skript schreiben, das Folgendes ausführt:

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

Ich muss also eine Reihe von Schleifen ausführen, eine URL, die mit einer Nummer aus der Schleife endet. Ich brauche wgetall das.

Szymon Toda
quelle

Antworten:

19

Wenn Sie Bash 4.0 verwenden, können Sie dies tun:

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

Es ist ziemlich einfach, selbst für jemanden mit wenig Programmiererfahrung. Lesen Sie im Zweifelsfall immer das Bash- Handbuch:

for i in {1..100}
do
    wget "example.com/imageID=$i"
done
Canha
quelle
Grundsätzlich sollten Sie Folgendes $iin Anführungszeichen setzen:wget "example.com/imageID=$i"
Scott
das funktioniert wahrscheinlich super. Ich beginne jedoch mit "00008000" und das Wget schießt Fehler, weil es für einige Gründe die ersten vier Nullen überspringt.
Esaruoho
-1

Falls sich die Variable nicht am Ende der URL befindet und sich die Variable zwischen den Unterstrichen befindet:
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
äquivalent:
for ((i=1;i<=100;i++)); do wget example.com/imageID_${i}_2018.gif; done

Vassil
quelle
3
Willkommen bei Super User. Bitte bearbeiten Sie Ihre Antwort, um weitere Details bereitzustellen. Nicht jeder, der Ihren Beitrag liest, versteht möglicherweise, wie er die Frage des OP ohne eine detailliertere Erklärung beantwortet.
Ich sage Reinstate Monica
1
Ich bin nicht sicher , dies ist eine Antwort. Es sieht aus wie eine Erklärung der akzeptierten Antwort (und keine sehr klare).
Scott