我想在命令行中打印一些 curl 的输出,比如 http 标头,然后是 stdin/stdout 程序处理的答案主体。例如:
打印状态码:
curl -s -w "%{http_code} \\n" -o "/dev/null" http://myURL.com
然后使用 json 解析工具处理输出:
curl -s http://myURL.com | python -mjson.tool
我想用一个命令完成这两项操作,我觉得这可能要归功于 -o 选项,它使得 curl 的输出和查询的实际答案有所不同。问题是 -o 直接写入文件。有人有办法吗?
答案1
你可以使用 bash 的进程替换>(cmd)
。例如:
curl -s -w "%{http_code}\n" -o >(ruby -ne 'printf("-%6s%s", $., $_)') http://www.example.com/
另一个可能满足您需求的方法是curl -v
,它将把标题发送到 stderr,将正文发送到 stdout。例如,
curl -v http://www.example.com/ | ruby -ne 'printf("-%6s%s", $., $_)'