किसी फ़ाइल में कर्ल आउटपुट कैसे कैप्चर करें?


421

मेरे पास एक पाठ दस्तावेज़ है जिसमें इस प्रारूप में URL का एक गुच्छा है:

URL = "sitehere.com"

मैं जो करने के लिए देख रहा हूं वह curl -K myfile.txtएक फ़ाइल में प्रतिक्रिया कर्ल रिटर्न का आउटपुट प्राप्त करने के लिए है।

मैं यह कैसे कर सकता हूँ?


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

जवाबों:


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

आपके द्वारा निर्दिष्ट फ़ाइल में प्राप्त पहला आउटपुट लिखता है (यदि कोई पुराना मौजूद है तो उसे अधिलेखित कर देता है)।

curl -K myconfig.txt >> output.txt

आपके द्वारा निर्दिष्ट सभी आउटपुट को निर्दिष्ट फ़ाइल में जोड़ता है।

नोट: -K वैकल्पिक है।


1
क्षमा करें, शायद मुझे स्पष्ट करने की आवश्यकता है - मेरे सभी URL के प्रारूप के बारे में doc को myfile.txt कहा जाता है, इसलिए मैं कर्ल -K myfile.txt करता हूं और यह चलता है हालांकि हर एक को लेकिन मुझे किसी भी फाइल में आउटपुट नहीं मिलता है।
टोनी

22
मैं अपनी कमांड लाइनों के लिए रीडायरेक्ट का उपयोग करता हूं:curl url > destfile.x
waswwizard

1
जब मैं इन दोनों में से कोई भी आउटपुट टर्मिनल में प्रदर्शित करता हूं, तो फाइल में नहीं
क्राइस

5
@ आप शायद url में एक एम्परसेंड है। url को दोहरे उद्धरण चिह्नों में
डालें

यह -K के बिना काम करता है। इसके साथ, मुझे "कोई URL निर्दिष्ट नहीं है।"
४ab बजे आर्य पुर्ताबतबाई

162

एक फ़ाइल के लिए आप URL पथ के अंतिम खंड को फ़ाइल नाम के रूप में उपयोग -Oकरने के बजाय उपयोग कर सकते हैं -o filename। उदाहरण:

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

वर्तमान फ़ोल्डर में बड़ी-file.iso नामक एक नई फ़ाइल के परिणामों को बचाएगा । इस तरह यह wget के समान काम करता है लेकिन आपको अन्य कर्ल विकल्प निर्दिष्ट करने की अनुमति देता है जो wget का उपयोग करते समय उपलब्ध नहीं हैं।


1
कई फ़ाइलों के लिए --remote-name-all unix.stackexchange.com/a/265819/171025
qwr

28

फ़ाइल में कर्ल आउटपुट बनाने के लिए कई विकल्प हैं

 # 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 आउटपुट कॉपी करना चाहते हैं, आप cURL कमांड के बाद pbcopyपाइप का उपयोग करके उपयोग कर सकते हैं |

उदाहरण: curl https://www.google.com/robots.txt | pbcopy। यह दिए गए URL की सभी सामग्री को आपके क्लिपबोर्ड पर कॉपी कर देगा।


pbcopy केवल MacOS पर उपलब्ध है। हालाँकि xclipइसका उपयोग लिनक्स में इस प्रश्न को देखने के लिए किया जा सकता है । हालाँकि मैं ज्यादातर मामलों में पसंद करता हूँ, curl http://example.com -o example_com.html & cat example_com.html | pbcopy इसलिए यदि आप अकस्मात अपने क्लिपबोर्ड को साफ़ करते हैं तो आपको फिर से कर्ल करने की आवश्यकता नहीं होगी।
लैकोस्टेनकोडर

यह भी सावधानी के साथ इस्तेमाल किया जाना चाहिए अगर आप पेलोड के आकार के बारे में अनिश्चित हैं। उदाहरण के लिए आप शायद इसे टेक्स्ट एडिटर में पेस्ट नहीं करना चाहेंगे, लेकिन इसे खोलना कोई समस्या नहीं है। curl http://www.textfiles.com/etext/FICTION/fielding-history-243.txt | pbcopyशायद यह कोशिश मत करो!
लैकोस्टेनकोडर 10

0

यदि आप अपने डेस्कटॉप में अपना आउटपुट स्टोर करना चाहते हैं, तो git bash में पोस्ट कमांड का उपयोग करके नीचे दिए गए कमांड का पालन करें। यह मेरे लिए काम करता है।

curl https: // localhost: 8080 --request POST --header "सामग्री-प्रकार: अनुप्रयोग / json" -o "C: \ Desktop \ test.txt"


-1

थोड़ी देर से, लेकिन मुझे लगता है कि ओपी कुछ इस तरह की तलाश में था:

curl -K myfile.txt --trace-asci output.txt
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.