วิธีจับ Curl output ไปยังไฟล์


421

ฉันมีเอกสารข้อความที่มี URL จำนวนมากในรูปแบบนี้:

URL = "sitehere.com"

สิ่งที่ฉันต้องการทำคือเรียกใช้curl -K myfile.txtและรับผลลัพธ์ของการตอบกลับ Curl ที่ส่งคืนเป็นไฟล์

ฉันจะทำสิ่งนี้ได้อย่างไร


23
curl http://{one,two}.example.com -o "file_#1.txt" curl.haxx.se/docs/manpage.html
onmyway133

คำตอบ:


609
curl -K myconfig.txt -o output.txt 

เขียนเอาต์พุตแรกที่ได้รับในไฟล์ที่คุณระบุ (เขียนทับหากเก่ามีอยู่)

curl -K myconfig.txt >> output.txt

ผนวกเอาต์พุตทั้งหมดที่คุณได้รับไปยังไฟล์ที่ระบุ

หมายเหตุ: -K เป็นทางเลือก


1
ขออภัยบางทีฉันต้องชี้แจง - เอกสารที่มี URL ทั้งหมดของฉันในรูปแบบเกี่ยวกับเรียกว่า myfile.txt ดังนั้นฉันจะม้วน -K myfile.txt และมันทำงานแม้ว่าแต่ละคน แต่ฉันไม่ได้เอาท์พุทเป็นไฟล์ใด ๆ
โทนี่

22
ฉันใช้การเปลี่ยนเส้นทางสำหรับบรรทัดคำสั่งของฉัน:curl url > destfile.x
wasatchwizard

1
เมื่อฉันทำอย่างใดอย่างหนึ่งผลลัพธ์เหล่านี้ยังคงปรากฏในเทอร์มินัลไม่ได้อยู่ในไฟล์
kris

5
@kris คุณอาจมีเครื่องหมายและใน url ใส่ url ในเครื่องหมายคำพูดคู่แล้วลอง
jglouie

มันทำงานได้โดยไม่ต้อง -K ด้วยฉันได้รับ "ไม่ได้ระบุ URL"
Arya Pourtabatabaie

163

สำหรับไฟล์เดียวคุณสามารถใช้-Oแทน-o filenameการใช้ส่วนสุดท้ายของเส้นทาง URL เป็นชื่อไฟล์ ตัวอย่าง:

curl http://example.com/folder/big-file.iso -O

จะบันทึกผลลัพธ์ไปยังไฟล์ใหม่ชื่อbig-file.isoในโฟลเดอร์ปัจจุบัน ด้วยวิธีนี้จะทำงานคล้ายกับwgetแต่ช่วยให้คุณระบุตัวเลือก curlอื่น ๆที่ไม่พร้อมใช้งานเมื่อใช้ wget


1
สำหรับหลาย ๆ ไฟล์ให้ใช้--remote-name-all unix.stackexchange.com/a/265819/171025
qwr

28

มีหลายตัวเลือกในการสร้างเอาต์พุต curl ให้กับไฟล์

 # saves it to myfile.txt
curl http://www.example.com/data.txt -o myfile.txt

# The #1 will get substituted with the url, so the filename contains the url
curl http://www.example.com/data.txt -o "file_#1.txt" 

# saves to data.txt, the filename extracted from the URL
curl http://www.example.com/data.txt -O 

# saves to filename determined by the Content-Disposition header sent by the server.
curl http://www.example.com/data.txt -O -J 

6

สำหรับผู้ที่คุณต้องการคัดลอกเอาต์พุต cURL ในคลิปบอร์ดแทนที่จะส่งออกไปยังไฟล์คุณสามารถใช้pbcopyโดยใช้|ไพพ์หลังจากคำสั่ง cURL

ตัวอย่าง: curl https://www.google.com/robots.txt | pbcopy. สิ่งนี้จะคัดลอกเนื้อหาทั้งหมดจาก URL ที่กำหนดไปยังคลิปบอร์ดของคุณ


pbcopy พร้อมใช้งานบน MacOS เท่านั้น อย่างไรก็ตามxclipสามารถใช้งานได้ในที่ ๆLinux เห็นคำถามนี้ อย่างไรก็ตามในกรณีส่วนใหญ่ฉันจะชอบcurl http://example.com -o example_com.html & cat example_com.html | pbcopy ดังนั้นคุณไม่จำเป็นต้องขดอีกครั้งถ้าคุณลบคลิปบอร์ด
lacostenycoder

นอกจากนี้ควรใช้ด้วยความระมัดระวังหากคุณไม่แน่ใจขนาดของน้ำหนักบรรทุก ตัวอย่างเช่นคุณอาจไม่ต้องการวางสิ่งนี้ลงในโปรแกรมแก้ไขข้อความ แต่เปิดในกลุ่มที่ไม่มีปัญหา curl http://www.textfiles.com/etext/FICTION/fielding-history-243.txt | pbcopyอาจจะไม่ลองสิ่งนี้!
lacostenycoder

0

หากคุณต้องการเก็บเอาท์พุทของคุณลงในเดสก์ท็อปของคุณทำตามคำสั่งด้านล่างโดยใช้คำสั่งโพสต์ใน git bash มันทำงานให้ฉัน

curl https: // localhost: 8080 - คำขอ POST - ส่วนหัว "Content-Type: application / json" -o "C: \ Desktop \ test.txt"


-1

สายไปหน่อย แต่ฉันคิดว่า OP กำลังมองหาสิ่งที่ต้องการ:

curl -K myfile.txt --trace-asci output.txt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.