使用wget然后输出到管道,出现断开的管道错误

sh/bash/dash/ksh/zsh等Shell脚本
回复
fnuytutd
帖子: 3
注册时间: 2016-02-19 13:55
系统: ubuntu

使用wget然后输出到管道,出现断开的管道错误

#1

帖子 fnuytutd » 2016-02-19 14:04

其中url为“http://www.51ztzj.com/zt/xqxzt/”等类似网址,目的是为了将该页面中的所有图片链接下载。
wget -e robots=off -O- -i url | grep -o -E "<[img|IMG].*src=[\'|\"](.*(\.gif|\.jpg))[\'|\"].*[\/]?>" | sed -r 's/.*"(.+)".*/\1/'

运行之后显示如下:
egao@T420:~/下载$ wget -e robots=off -O- -i url | grep -o -E "<[img|IMG].*src=[\'|\"](.*(\.gif|\.jpg))[\'|\"].*[\/]?>" | sed -r 's/.*"(.+)".*/\1/'
--2016-02-19 13:55:50-- http://www.51ztzj.com/zt/xqxzt/
正在解析主机 www.51ztzj.com (www.51ztzj.com)... 121.9.213.244
正在连接 www.51ztzj.com (www.51ztzj.com)|121.9.213.244|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 39736 (39K) [text/html]
正在保存至: “STDOUT”

- 0%[ ] 0 --.-KB/s 匹配到二进制文件 (标准输入)
- 10%[=> ] 4.01K --.-KB/s 用时 0.04s


无法写入 “-” (断开的管道)。


为什么会出现断开的管道?我如果从另外的网站如“www.egaoing.com"就不会出现问题,大部分网站都会出现这个错误?


求大神解惑????
附件
2016-02-19 14-01-41屏幕截图.png
fnuytutd
帖子: 3
注册时间: 2016-02-19 13:55
系统: ubuntu

Re: 使用wget然后输出到管道,出现断开的管道错误

#2

帖子 fnuytutd » 2016-02-21 15:37

自己解决。。。。。部分网站编码不一样的问题。。。
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 使用wget然后输出到管道,出现断开的管道错误

#3

帖子 lilydjwg » 2016-03-07 21:21

grep 发现是二进制文件,默认只报告是否匹配,所以匹配到了就关掉了输入文件而已。
回复