การดาวน์โหลดหลายไฟล์พร้อมกันกับชื่อที่มีการเปลี่ยนแปลง


0

ฉันกำลังเขียน bash script และไม่รู้วิธีแก้ปัญหาของฉัน

ฉันต้องการดาวน์โหลดไฟล์หลายไฟล์พร้อมกัน แต่ ... ฉันต้องการบันทึกไฟล์ภายใต้ชื่อที่ปรับเปลี่ยน

ฉันมีตัวแปรที่มี URL

example.com/aaa.txt
example.com/ooo/bbbbbb.txt 
example.info/c.txt 

ลำดับของ URL มีความสำคัญ

หลังจากดาวน์โหลดฉันต้องการ:

1.txt
2.txt
3.txt

ฉันทดสอบขนานและ wget แต่ฉันไม่ทราบวิธีการเปลี่ยนชื่อไฟล์

PS: จำกัด การดาวน์โหลดพร้อมกัน 5 ครั้ง

คำตอบ:


0

สิ่งที่ฉันต้องการจริงๆคือดูตัวอย่างตัวแปร URL ของคุณ แต่อย่างไรก็ตามนี่คือพื้นฐานของสิ่งที่ฉันคิด:

 #!/usr/bin/bash

 end=$(wc -l URLs.txt | sed 's/\ .*//g')
 x=1

 while read URL; do

         until [ $x -eq $end ]; do

                wget $URL --output-document=$x.txt
                x=$(($x+1))

         done

 done < URLs.txt

ฉันจะแก้ไขหากคุณมีข้อมูลเพิ่มเติม แต่ในขณะนี้ฉันได้ตั้งค่าเพื่อให้อ่าน URLs.txt ซึ่งจะต้องมีหนึ่ง URL ต่อบรรทัดและในไดเรกทอรีเดียวกัน


สคริปต์ของคุณคล้ายกับรหัสของฉันมาก น่าเสียดายที่นี่ไม่ใช่สิ่งที่ฉันกำลังมองหา ในตัวอย่างของคุณไฟล์จะไม่ถูกดาวน์โหลดพร้อมกัน ในวงวิ่งเพียงหนึ่ง wget มันใช้งานได้ แต่มันช้า URL ของฉันได้รับจากการวิเคราะห์ไฟล์ directory.djvu (djvudump ./directory.djvu)
Creek

อาจสร้างไฟล์ URL.txt แยกกันห้าไฟล์แล้วลอง: bash script1.sh & bash script2.sh & bash script3.sh & bash script4.sh & bash5.sh &
infinite-etcetera

ฉันก็คิดเกี่ยวกับมัน ฉันหวังว่าฉันจะหาทางออกที่ดีกว่า
Creek

length=$(wc -l URLs.txt | cut -f1 -d ' ') && split -d -l $(($length/5)) URLs.txt URLs.txtจะทำให้การแยกอย่างรวดเร็ว
infinite-etcetera

ดูเหมือนว่าจะมีผลลัพธ์จำนวนมากที่นี่: startpage.com/do/…
infinite-etcetera
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.