วนรอบช่วงตัวเลขเพื่อดาวน์โหลดด้วย wget


11

ฉันจะเขียนสคริปต์ทุบตีที่จะทำสิ่งต่อไปนี้ได้อย่างไร:

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

ดังนั้นฉันจึงมีจำนวนลูปที่ต้องดำเนินการ URL ที่ลงท้ายด้วยตัวเลขจากลูป ฉันต้องการwgetทั้งหมดเหล่านี้

คำตอบ:


19

หากคุณใช้ Bash 4.0 คุณสามารถทำสิ่งนี้ได้:

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

10

มันค่อนข้างง่ายแม้กับคนที่ไม่มีประสบการณ์การเขียนโปรแกรมมากนัก เมื่อมีข้อสงสัยให้อ่านคู่มือBashเสมอ:

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

ตามหลักการคุณควรใส่$iเครื่องหมายอัญประกาศ:wget "example.com/imageID=$i"
สกอตต์

นี่อาจใช้งานได้ดี อย่างไรก็ตามฉันเริ่มต้นจาก "00008000" และข้อผิดพลาด wget ยิงเพราะสำหรับบาง reasn มันข้ามสี่ศูนย์แรก
esaruoho

-1

ในกรณีที่ตัวแปรไม่ได้อยู่ที่ส่วนท้ายของ URL และตัวแปรอยู่ระหว่างขีด:
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
เท่า:
for ((i=1;i<=100;i++)); do wget example.com/imageID_${i}_2018.gif; done


3
ยินดีต้อนรับสู่ Super User โปรดแก้ไขคำตอบของคุณเพื่อให้รายละเอียดเพิ่มเติม ไม่ใช่ทุกคนที่อ่านโพสต์ของคุณอาจเข้าใจว่าจะตอบคำถามของ OP ได้อย่างไรโดยไม่ต้องอธิบายรายละเอียดเพิ่มเติม
ฉันพูดว่า Reinstate Monica

1
ฉันไม่แน่ใจว่านี่คือคำตอบ ดูเหมือนว่าคำอธิบายของคำตอบที่ยอมรับได้ (และไม่ใช่คำตอบที่ชัดเจนมาก)
สกอตต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.