ฉันจะดาวน์โหลดไฟล์ (ที่ระบุไว้ในไฟล์ข้อความ) โดยใช้wget
หรือวิธีอื่นโดยอัตโนมัติได้อย่างไร
รายการไฟล์ตัวอย่าง:
www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf
ฉันจะดาวน์โหลดไฟล์ (ที่ระบุไว้ในไฟล์ข้อความ) โดยใช้wget
หรือวิธีอื่นโดยอัตโนมัติได้อย่างไร
รายการไฟล์ตัวอย่าง:
www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf
คำตอบ:
wget มีธงในตัวสำหรับสิ่งนี้: wget -i your_list
คุณสามารถค้นหาสิ่งนี้ได้โดยการอ่านman wget
รับพวกมันควบคู่ไปด้วย
cat urlfile | parallel --gnu "wget {}"
โดยค่าเริ่มต้นมันจะเรียกใช้หลาย ๆ กระบวนการตามที่คุณมีแกนประมวลผลคุณอาจเพิ่มทางลัดขึ้นอีก 10 เท่าหากคุณต้องการดึงมันลงอย่างรวดเร็วโดยเพิ่ม "-j 20" หลังจากขนาน
xargs -i wget 'http://{}' < your_list
parallel
มีแฟล็กในตัว--arg-file
( -a
) ที่จะใช้อินพุตไฟล์เป็นแหล่งที่มาดังนั้นคุณจึงสามารถหลีกเลี่ยงcat |
ได้ คุณสามารถใช้ได้
parallel --gnu -a urlfile wget
หรือเพียงแค่ parallel --gnu wget < urlfile
awk '{print "http://" $0;}' list.txt | xargs -l1 wget
โดย list.txt เป็นไฟล์รายการของคุณ
ฉันเห็นคำตอบของ Florian Diesch
ฉันได้มันไปทำงานโดยรวมพารามิเตอร์bqc
ในคำสั่ง
xargs -i wget -bqc 'http://{}' < download.txt
การดาวน์โหลดทั้งหมดเริ่มต้นพร้อมกันในพื้นหลัง
-b
: พื้นหลัง. ไปที่พื้นหลังทันทีหลังจากเริ่มต้น-q
เงียบ ๆ ปิดเอาต์พุตของ wget-c
: ดำเนินการต่อ รับไฟล์ที่ดาวน์โหลดมาบางส่วนต่อไปลิงก์ไฟล์ links.txt
คำสั่งสำหรับดาวน์โหลดไฟล์ลิงก์ทั้งหมด
cat links.txt | wget -i
wget -i links.txt
เป็นคำสั่งที่เหมาะสม
ฉันเพิ่งทดสอบสิ่งนี้:
xargs -a download_file -L1 wget
มันใช้งานได้สำหรับฉัน ลิงก์ภายในไฟล์ txt ต้องอยู่ในบรรทัดแยกต่างหาก