我试图通过以下操作将文档正文及其标头输出到 STDOUT
wget -S -O - http://google.com
但它只显示 HTML 文档。
更新: 让它工作
wget --save-headers --output-document - http://google.com
wget --version显示我的版本是 GNU Wget 1.11.4 Red Hat modified。
wget --version
GNU Wget 1.11.4 Red Hat modified
它在这里起作用:
$ wget -S -O - http://google.com HTTP request sent, awaiting response... HTTP/1.1 301 Moved Permanently Location: http://www.google.com/ Content-Type: text/html; charset=UTF-8 Date: Sat, 25 Aug 2012 10:15:38 GMT Expires: Mon, 24 Sep 2012 10:15:38 GMT Cache-Control: public, max-age=2592000 Server: gws Content-Length: 219 X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Location: http://www.google.com/ [following] --2012-08-25 12:20:29-- http://www.google.com/ Resolving www.google.com (www.google.com)... 173.194.69.99, 173.194.69.104, 173.194.69.106, ... ...skipped a few more redirections ... [<=> ] 0 --.-K/s <!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"><head><meta itemprop="image" content="/images/google_favicon_128.png"><ti ... skipped ...
也许您需要更新您的 wget (< code > ~ $wget-version GNU Wget 1.14构建在 linux-GNU 上
对我来说,wget -S -O - http://google.com和预期的一样,但是有一个警告: 头被认为是调试信息,因此它们被发送到 标准错误而不是标准输出。如果将标准输出重定向到文件或其他进程,则只能获取文档内容。
您可以尝试将标准错误重定向到标准输出,以此作为一种可能的解决方案:
$ wget -q -S -O - 2>&1 | grep ...
或者
$ wget -q -S -O - 1>wget.txt 2>&1
-q选项将取消进度条和 wget输出中其他一些烦人的聊天部分。
-q
wget
试试以下方法
wget -q -S -O - www.google.com 2>&1
注意后面的 -。这是 -O通常的命令参数的一部分,用于连接到一个文件,但是由于我们不使用 >来直接连接到一个文件,所以它会连接到 shell。你可以使用 -qO-或者 -qO -。
-
-O
>
-qO-
-qO -
这是行不通的:
wget -q -S -O - google.com 1>wget.txt 2>&1
因为重定向是从右到左计算的,所以这会将 html 发送到 wget.txt,将头发送到 STDOUT:
wget -q -S -O - google.com 2>&1 1>wget.txt
这对于我打印带头的响应是有效的:
wget --server-response http://www.example.com/