我只想打印使用 cURL 检索到的网页的HTTP 状态代码。是否可以使用 AWK 单线执行此操作?
问问题
4922 次
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 回答