如何使用AWK单行获取HTTP状态代码?

时间:2012-06-21 11:38:11

标签: curl http-headers awk

我想仅打印使用cURL检索的网页的HTTP status code。是否可以使用AWK单线程进行此操作?

2 个答案:

答案 0 :(得分:8)

只需卷曲即可获得它,甚至不使用awk:

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

curl的-I选项会产生一个HEAD请求,这通常就是你想要的。

答案 1 :(得分:0)

解决方案

以下单行将从管道读取HTTP标头,并打印出状态代码。

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

有趣的方面

这种方法有一些好处,乍一看可能并不明显。例如:

  • 此解决方案是纯AWK;不需要shell脚本或包装器。
  • 由于我们只关心标题的第一行,因此我们无需跟踪或比较NR以跳过不需要的行。
  • $ 0填充在BEGIN块中,因此AWK不需要文件参数。