Lặp lại một loạt các số để tải xuống với wget


11

Làm thế nào tôi có thể viết một tập lệnh bash sẽ làm như sau:

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

Vì vậy, tôi có một số vòng lặp để thực hiện, một URL được kết thúc bằng một số từ vòng lặp. Tôi cần wgettất cả những thứ này.

Câu trả lời:


19

nếu bạn đang sử dụng Bash 4.0, bạn có thể làm điều này:

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

10

Nó khá dễ, ngay cả với những người không có nhiều kinh nghiệm lập trình. Khi nghi ngờ luôn luôn đọc hướng dẫn Bash :

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

Theo nguyên tắc, bạn nên gửi kèm theo $idấu ngoặc kép:wget "example.com/imageID=$i"
Scott

điều này có thể làm việc tuyệt vời. tuy nhiên, tôi bắt đầu từ "00008000" và wget bắn lỗi vì đối với một số reasn, nó bỏ qua bốn số không đầu tiên.
esaruoho

-1

Trong trường hợp biến không ở cuối URL và biến nằm giữa dấu gạch dưới:
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
tương đương:
for ((i=1;i<=100;i++)); do wget example.com/imageID_${i}_2018.gif; done


3
Chào mừng đến với Siêu người dùng. Vui lòng chỉnh sửa câu trả lời của bạn để cung cấp thêm chi tiết. Không phải ai đọc bài viết của bạn cũng có thể hiểu cách nó trả lời câu hỏi của OP mà không cần giải thích chi tiết hơn.
Tôi nói Phục hồi lại

1
Tôi không chắc đây câu trả lời. Nó trông giống như một lời giải thích về câu trả lời được chấp nhận (và không phải là một câu trả lời rất rõ ràng).
Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.