簡體   English   中英

如何在 curl 中打印響應和狀態碼的第一行

[英]How to print first line of the response and status code in curl

curl -o /dev/null -s -w "HTTPCode=%{http_code}_TotalTime%{time_total}s\n" http://test.com

只是給我狀態碼

我還想要響應的正文,我該如何在命令中做到這一點?

不要將它發送到/dev/null? -o正在扔掉它。

curl -sw "HTTPCode=%{http_code}_TotalTime%{time_total}s\n" http://test.com

如果您只想要第一行,如您的標題所示,請過濾它。

curl -sw "HTTPCode=%{http_code}_TotalTime%{time_total}s\n" http://test.com | sed -n '1p; $p;'

這告訴 sed 打印第一行和最后一行,因為您要求第一行,並且-w在完成后打印。 我的測試:

$: curl -s -w "HTTPCode=%{http_code}_TotalTime%{time_total}s\n" google.com | sed -n '1p; $p;'
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
HTTPCode=301_TotalTime0.270267s

如果您特別指的是響應中正文的第一行,那么現在您需要稍微定義“第一行”,並且您應該真正獲得一個支持 HTML 的解析器。 可能可以在sed中做到這一點,但在大多數情況下這確實是個壞主意。

如果這確實是您需要的,請告訴我,提供一些額外的細節,我們會努力解決的。

您可以使用此curl + awk解決方案:

curl -sw "HTTPCode=%{http_code}_TotalTime%{time_total}s\n" 'http://test.com' |
awk '{p=p $0 ORS} END{print; sub(/\n[^\n]+\n$/, "", p); print p}'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM