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.

Antworten:


19

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

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

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

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.