How to capture cURL output to a file?
Batch FileCurlBatch File Problem Overview
I have a text document that contains a bunch of URLs in this format:
URL = "sitehere.com"
What I'm looking to do is to run curl -K myfile.txt
, and get the output of the response cURL returns, into a file.
How can I do this?
Batch File Solutions
Solution 1 - Batch File
curl -K myconfig.txt -o output.txt
Writes the first output received in the file you specify (overwrites if an old one exists).
curl -K myconfig.txt >> output.txt
Appends all output you receive to the specified file.
Note: The -K is optional.
Solution 2 - Batch File
For a single file you can use -O
instead of -o filename
to use the last segment of the URL path as the filename. Example:
curl http://example.com/folder/big-file.iso -O
will save the results to a new file named big-file.iso in the current folder. In this way it works similar to wget but allows you to specify other curl options that are not available when using wget.
Solution 3 - Batch File
There are several options to make curl output to a file
# 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
Solution 4 - Batch File
Either curl
or wget
can be used in this case. All 3 of these commands do the same thing, downloading the file at http://path/to/file.txt and saving it locally into "my_file.txt":
wget http://path/to/file.txt -O my_file.txt # my favorite--it has a progress bar
curl http://path/to/file.txt -o my_file.txt
curl http://path/to/file.txt > my_file.txt
Notice the first one's -O
is the capital letter "O".
The nice thing about the wget
command is it shows a nice progress bar.
You can prove the files downloaded by each of the 3 techniques above are exactly identical by comparing their sha512 hashes. Running sha512sum my_file.txt
after running each of the commands above, and comparing the results, reveals all 3 files to have the exact same sha hashes (sha sums), meaning the files are exactly identical, byte-for-byte.
Solution 5 - Batch File
For those of you want to copy the cURL output in the clipboard instead of outputting to a file, you can use pbcopy
by using the pipe |
after the cURL command.
Example: curl https://www.google.com/robots.txt | pbcopy
. This will copy all the content from the given URL to your clipboard.
Linux version: curl https://www.google.com/robots.txt | xclip
Windows version: curl https://www.google.com/robots.txt | clip
Solution 6 - Batch File
Use --trace-ascii output.txt
to output the curl details to the file output.txt
.
Solution 7 - Batch File
A tad bit late, but I think the OP was looking for something like:
curl -K myfile.txt --trace-ascii output.txt
Solution 8 - Batch File
If you want to store your output into your desktop, follow the below command using post command in git bash.It worked for me.
curl https://localhost:8080
--request POST
--header "Content-Type: application/json"
-o "C:\Desktop\test.txt"
Solution 9 - Batch File
You need to add quotation marks between "URL" -o "file_output" otherwise, curl doesn't recognize the URL or the text file name.
Format
curl "url" -o filename
Example
curl "https://en.wikipedia.org/wiki/Quotation_mark" -o output_file.txt
Example_2
curl "https://en.wikipedia.org/wiki/Quotation_mark" > output_file.txt
Just make sure to add quotation marks.
Solution 10 - Batch File
Writes the first output received in the file you specify (overwrites if an old one exists).
curl -K myconfig.txt >> output.txt