LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 675|回复: 8

如何从这个文件中过滤出图片地址阿?并下载阿

[复制链接]
发表于 2005-5-23 00:52:57 | 显示全部楼层 |阅读模式
<a href="../../xcvcv.htm" Title="名字"><img src="http://photo.xx/dfsd/cc.jpg" border="1"></a>
<a href="../../../../xdsaf.htm" Title="名字"><img src="http://photo.xx/dfsd/cc.jpg" border="1"></a>
.....
如何从文件中过滤出图片地址阿 我想用wget下载里面全部的图片
想了半天也没想出来  就这个文件里面的内容还是我过滤出来的  就察这一步拉 大家帮忙想想 :ask
 楼主| 发表于 2005-5-23 03:31:39 | 显示全部楼层
勉强解决了  用了好几次sed
回复 支持 反对

使用道具 举报

发表于 2005-5-23 12:17:03 | 显示全部楼层
贴出来,或许大家能把它改进一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-23 16:15:37 | 显示全部楼层
是这样的  我给一个网站做了本地景象
可是里面有些图片连接的域名和这个网站不同
如: news.263.com 里面的图片是pic.263.com
我先进到文件夹news.263.com/xxxx/
分析了一张页面 发现里面只有一个<img src=htttp://pic.264.com/xxx/yyyy.jpg" xxx>的外部连接
怎么办啊  正则 查看资料 然后在做 ......
有点思路了cat * |grep http
得到了上面的结果
<a href="../../xcvcv.htm" Title="名字"><img src="http://photo.xx/dfsd/cc.jpg" border="1"></a>
<a href="../../../../xdsaf.htm" Title="名字"><img src="http://photo.xx/dfsd/cc.jpg" border="1"></a>
然后就不知道怎么办了  先保存到文件mm再说把
继续 man wget 发现里面有个wget -i 的选项 试试 >失败
我就继续查找资料 发现有人用sed 截取需要的部分我也试试
sed -e "s/^*/[http]//\1/g" mm (这个记不清了  估计些错了 请指正) 我记得我看那个例子是从var=截取到句末
我安照那个改的 看了半天都没看动 今天终于想明白了 替换 从http开始以前的内容为空

这样得到了
http://photo.xx/dfsd/cc.jpg" border="1"></a>
怎么办 查找以.jpg"结尾的 删除其后面的
sed -e "s/$jpg\"//g" mm  不对啊  这个转意字符怎么办啊
昏了 不知道怎么办了 我又看到"了  先过滤掉这个
http://photo.xx/dfsd/cc.jpg border=1></a>
继续过滤
剩下的就是
http://photo.xx/dfsd/cc.jpg
总算可以了  我看sed资料的时候 记得可以截取范围 要是可以截取src" 到"之间的应该很简单
就是这个转义字符不知道怎么办好

我得本意是 从没个文件中得到 上面的这个地址 然后把它替换成本地连接
这样就方便本地浏览了  然后在加入数据库 :beat   还是先下载图片把 :confused:
好了 这就是我的思路
回复 支持 反对

使用道具 举报

发表于 2005-5-24 14:41:16 | 显示全部楼层
比较菜 , 用的方法比较笨 , 不过还是能达到要求, 呵呵    你再改改 ..


[msphell@linux msphell]$ cat a
<a href="../../xcvcv.htm" Title="名字"><img src="http://photo.xx/dfsd/cc.jpg" border="1"></a>
<a href="../../../../xdsaf.htm" Title="名字"><img src="http://photo.xx/dfsd/cc.jpg" border="1"></a>
[msphell@linux msphell]$  sed 's/^<*.*src=\"//g' a|sed 's/" *.*>$//g'
http://photo.xx/dfsd/cc.jpg
http://photo.xx/dfsd/cc.jpg
回复 支持 反对

使用道具 举报

发表于 2005-5-24 15:00:49 | 显示全部楼层
try:

  1. grep -o 'http://[a-zA-Z0-9].*jpg'
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-25 17:29:34 | 显示全部楼层
Post by 寂寞烈火
try:

  1. grep -o 'http://[a-zA-Z0-9].*jpg'
复制代码

中间的 /  怎么办啊
还有假如 后面是gif 怎么设置并列阿
回复 支持 反对

使用道具 举报

发表于 2005-5-26 00:52:58 | 显示全部楼层
try:

  1. cat file|sed 's/src=\|"/\n/g'|sed -n '/^http/p'
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-5-26 13:51:50 | 显示全部楼层
麻烦点的
  1. cat file|sed 's/\(.*\)\(http\)\(.*\)\(jpg\)\(.*\)/\2\3\4/g'
复制代码

or
  1. cat http.txt|grep -o 'http://[[:alnum:]].*[jpg|gif]'
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表