1

我只想打印使用 cURL 检索到的网页的HTTP 状态代码。是否可以使用 AWK 单线执行此操作?

4

2 回答 2

9

你可以用 curl 得到它,甚至不用 awk:

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;不需要 shell 脚本或包装器。
  • 由于我们只关心标题的第一行,我们不需要跟踪或比较 NR 来跳过不需要的行。
  • $0 填充在 BEGIN 块中,因此 AWK 不需要文件参数。
于 2012-06-21T11:38:12.620 回答