【问题标题】:Split Header and Content in curl在 curl 中拆分标题和内容
【发布时间】:2016-01-05 19:47:13
【问题描述】:
curl -L -i google.com

我想将响应中的 HEADER 和 CONTENT 拆分为两个变量

curl -I google.com
curl -L google.com

我不能使用这两个,因为我将使用它与 10000+ 链接

Header 和 Content 都可以有三个或更多的空行,因此分割空行不会每次都起作用


我找到了答案

b=$(curl -LsD h google.com)
h=$(<h)
echo "$h$b"

此代码也可以使用

curl -sLi google.com | 
awk -v bl=1 'bl{bl=0; h=($0 ~ /HTTP\/1/)} /^\r?$/{bl=1} {print $0>(h?"header":"body")}'

header=$(<header)
body=$(<body)

【问题讨论】:

  • 头部包含空行不违法吗?
  • 有时会出现 302 错误,它会显示两个标题,因此在它们之间会有一个空行

标签: linux bash shell curl http-headers


【解决方案1】:

你可以使用这个脚本:

curl -sLi google.com | 
   awk -v bl=1 'bl{bl=0; h=($0 ~ /HTTP\/1/)} /^\r?$/{bl=1} {print $0>(h?"header":"body")}'

header=$(<header)
body=$(<body)

【讨论】:

  • 有没有办法在不生成头文件和正文文件的情况下做到这一点?
  • OP 提到了同样的 -D 选项
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2021-03-29
  • 2021-06-04
  • 2015-04-03
  • 1970-01-01
相关资源
最近更新 更多