Zapętlaj zakres liczb, aby pobrać za pomocą wget


11

Jak napisać skrypt bash, który wykona następujące czynności:

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

Mam więc kilka pętli do wykonania, adres URL zakończony liczbą z pętli. Potrzebuję do nich wgetwszystkich.

Odpowiedzi:


19

jeśli używasz Bash 4.0, możesz to zrobić:

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

10

Jest to dość łatwe, nawet dla kogoś, kto nie ma dużego doświadczenia w programowaniu. W razie wątpliwości zawsze czytaj instrukcję Bash :

for i in {1..100}
do
    wget "example.com/imageID=$i"
done

Zasadniczo powinieneś dołączyć $icytaty:wget "example.com/imageID=$i"
Scott,

to prawdopodobnie działa świetnie. jednak zaczynam od „00008000” i wget strzela błędami, ponieważ dla niektórych reasn pomija pierwsze cztery zera.
esaruoho,

-1

W przypadku, gdy zmienna nie znajduje się na końcu adresu URL, a zmienna znajduje się między znakami podkreślenia:
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
równoważnie:
for ((i=1;i<=100;i++)); do wget example.com/imageID_${i}_2018.gif; done


3
Witamy w Super User. Proszę edytować swoje odpowiedzi, aby zapewnić więcej szczegółów. Nie wszyscy czytający Twój post mogą zrozumieć, w jaki sposób odpowiada on na pytanie PO bez bardziej szczegółowego wyjaśnienia.
Mówię: Przywróć Monikę

1
Nie jestem pewien, to jest odpowiedź. Wygląda jak wyjaśnienie przyjętej odpowiedzi (i niezbyt jasnej).
Scott
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.