Curl

如何以不同的方式管道捲曲答案的正文和列印輸出?

  • October 25, 2013

我想在命令行中列印一些 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 直接寫入文件。有人有黑客嗎?

您可以使用 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", $., $_)'

引用自:https://serverfault.com/questions/548774