1

cURL を使用して取得した Web ページのHTTP ステータス コードだけを出力したいと考えています。AWKワンライナーでこれを行うことは可能ですか?

4

2 に答える 2

9

awk を使用しなくても、curl だけで取得できます。

curl -I http://example.com/ -w '%{response_code}' -so /dev/null

curl の-Iオプションは HEAD リクエストを作成します。これは通常、これが必要です。

于 2012-06-21T12:58:49.407 に答える
0

解決

次のワンライナーは、パイプから HTTP ヘッダーを読み取り、ステータス コードを出力します。

awk 'BEGIN {"curl -sI http://example.com" | getline; print "Status Code: " $2}'

興味深い側面

このアプローチには、一見すると明らかではないいくつかの優れた点があります。例えば:

  • このソリューションは純粋な AWK です。シェル スクリプトやラッパーは必要ありません。
  • ヘッダーの最初の行だけを気にするので、不要な行をスキップするために NR を追跡または比較する必要はありません。
  • $0 は BEGIN ブロックに入力されるため、AWK はファイル引数を必要としません。
于 2012-06-21T11:38:12.620 に答える