Linux 如何输出到文件并在cURL中获取特定的头文件?
我有一个文件链接,我将使用cURL下载,我需要将这个文件输出到一些临时文件,我还需要获得特定的头值 例如:Linux 如何输出到文件并在cURL中获取特定的头文件?,linux,unix,curl,Linux,Unix,Curl,我有一个文件链接,我将使用cURL下载,我需要将这个文件输出到一些临时文件,我还需要获得特定的头值 例如: Link: http://my.download.url<br> Output to: /tmp/my-downloaded-file<br> Header(Content-Length or whatever): abc123 链接:http://my.download.url 输出到:/tmp/my下载的文件 标题(内容长度或任何内容):abc123 那么,文
Link: http://my.download.url<br>
Output to: /tmp/my-downloaded-file<br>
Header(Content-Length or whatever): abc123
链接:http://my.download.url
输出到:/tmp/my下载的文件
标题(内容长度或任何内容):abc123
那么,文件名取决于头的值
据我所知,cURL不允许您在一个流(比如标准输出)上获取标题,在另一个流上获取主体。你需要做的是要么把它们都放在一起解析出来,要么执行两个调用。以下是两种呼叫方法:
# URL and the header you want
url="http://www.example.com"
hdr="Content-Length"
# get the value of the header (this does not download the body)
headerValue=$(curl -sI "$url" | grep -i "^$hdr:" | cut -f2 -d: | sed 's/^[ \r\n\t]*//;s/[ \r\n\t]*$//')
# create a file name from that header value
fileName="/tmp/download-$headerValue"
# download the body into that file
curl -so "$fileName" "$url"
提供要从中提取数据的精确输出contents@Inian我想将输出复制到一个名为content-disposition.Fair的文件(我将提供的路径)中!你给它写信后想做什么?提供example@Inian我将获得名称并在我的prod中运行该文件。我需要该名称,因为它将作为参数传递给某个函数。我在这里没有看到问题,您可以执行
curl-s>
来执行此操作?这就是您想要做的吗?第一个调用执行一个头
,它只下载头。第二个调用执行一个GET
,它将下载标题和正文。Oww获得了它,因此它不会下载两次。谢谢!