我已经使用curl -i http://website.com了很长时间了。很棒,它报告了响应头和信息。
我还使用了一种jq可以解析和打印JSON 的工具。我想做以下事情:
curl -i http://website.com | jq -r .
Run Code Online (Sandbox Code Playgroud)
问题是HTTP标头转发到jq。
有没有一种方法可以重定向-i到标准错误?
Zme*_*mey 18
试试这个命令:
curl -s -D /dev/stderr http://www.website.com/... | jq
小智 3
由于我今天遇到了一些问题,我想出了使用:
curl -i http://some-server/get.json | awk '{ sub("\r$", ""); print }' | awk -v RS= 'NR==1{print > "/dev/stderr";next} 1' > /dev/stdout | jq .
Run Code Online (Sandbox Code Playgroud)
很可能不是最好的解决方案,但它对我有用。
说明:第一个 awk 程序只会将 windows 新行转换为 unix 新行。
在第二个程序中将-v RS=指示 awk 使用一个或多个空行作为记录分隔符[1]。NR==1{print > "/dev/stderr";next}将打印第一条记录 (NR==1) 到 stderr,下一条语句强制 awk 立即停止处理当前记录并继续处理下一条记录[2]。只是[3]1的简写。{print $0}
[1] /sf/answers/2330851491/
[2] https://www.gnu.org/software/gawk/manual/html_node/Next-Statement.html
[3] https://stackoverflow.com /a/20263611
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |