Làm thế nào để chụp đầu ra Curl vào một tập tin?


422

Tôi có một tài liệu văn bản chứa một loạt các URL ở định dạng này:

URL = "sitehere.com"

Những gì tôi đang tìm kiếm là chạy curl -K myfile.txtvà nhận đầu ra của phản hồi Curl trả về, thành một tệp.

Tôi có thể làm cái này như thế nào?


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

Câu trả lời:


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

Ghi đầu ra đầu tiên nhận được trong tệp bạn chỉ định (ghi đè nếu tồn tại cũ).

curl -K myconfig.txt >> output.txt

Nối tất cả đầu ra bạn nhận được vào tệp đã chỉ định.

Lưu ý: -K là tùy chọn.


1
Xin lỗi có lẽ tôi cần phải làm rõ - tài liệu có tất cả URL của tôi ở định dạng được gọi là myfile.txt vì vậy tôi thực hiện curl -K myfile.txt và nó chạy qua từng tệp nhưng tôi không nhận được đầu ra vào bất kỳ tệp nào.
Tony

22
Tôi sử dụng chuyển hướng cho các dòng lệnh của mình:curl url > destfile.x
wasatchwizard

1
Khi tôi thực hiện một trong hai, đầu ra vẫn hiển thị trong thiết bị đầu cuối, không phải trong tệp
kris

5
@kris bạn có thể có một dấu và trong url. đặt url trong dấu ngoặc kép và sau đó thử
jglouie

Nó hoạt động mà không có -K. Với nó, tôi nhận được "Không có URL được chỉ định."
Arya Pourtabatabaie

163

Đối với một tệp duy nhất, bạn có thể sử dụng -Othay vì -o filenamesử dụng đoạn cuối của đường dẫn URL làm tên tệp. Thí dụ:

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

sẽ lưu kết quả vào một tệp mới có tên big-file.iso trong thư mục hiện tại. Theo cách này, nó hoạt động tương tự như wget nhưng cho phép bạn chỉ định các tùy chọn cuộn tròn khác không khả dụng khi sử dụng wget.


1
đối với nhiều tệp, hãy sử dụng --remote-name-all unix.stackexchange.com/a/265819/171025
qwr

28

Có một số tùy chọn để tạo đầu ra curl vào một tệp

 # 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

Đối với những người bạn muốn sao chép đầu ra cURL trong bảng tạm thay vì xuất ra tệp, bạn có thể sử dụng pbcopybằng cách sử dụng đường ống |sau lệnh cURL.

Ví dụ : curl https://www.google.com/robots.txt | pbcopy. Điều này sẽ sao chép tất cả nội dung từ URL đã cho vào clipboard của bạn.


pbcopy chỉ có sẵn trên MacOS. Tuy nhiên xclipcó thể được sử dụng ở nơi dành cho Linux, hãy xem câu hỏi này . Tuy nhiên, trong hầu hết các trường hợp tôi sẽ thích curl http://example.com -o example_com.html & cat example_com.html | pbcopy Vì vậy, bạn sẽ không cần phải cuộn tròn lại nếu bạn vô tình xóa bảng tạm.
lacostenycoder

Ngoài ra, điều này nên được sử dụng một cách thận trọng nếu bạn không chắc chắn về kích thước của tải trọng. Ví dụ, bạn có thể không muốn dán nó vào trình soạn thảo văn bản, nhưng mở nó trong vim thì không vấn đề gì. curl http://www.textfiles.com/etext/FICTION/fielding-history-243.txt | pbcopycó lẽ đừng thử cái này
lacostenycoder

0

Nếu bạn muốn lưu trữ đầu ra của bạn vào máy tính để bàn của bạn, hãy làm theo lệnh dưới đây bằng cách sử dụng lệnh post trong git bash. Nó hoạt động với tôi.

curl https: // localhost: 8080 --request POST - tiêu đề "Loại nội dung: application / json" -o "C: \ Desktop \ test.txt"


-1

Hơi muộn một chút, nhưng tôi nghĩ OP đang tìm kiếm thứ gì đó như:

curl -K myfile.txt --trace-asci output.txt
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.