如何在linux中从string1搜索到string2?

时间:2011-12-16 19:22:26

标签: linux bash sed awk grep

我正在编写一个bash脚本,它将下载页面,然后搜索jpg链接并下载它们。我坚持使用grep / sed命令,无法让他们找到链接。到目前为止,我已经尝试过:

grep -e "http.*" -e ".*jpg" -n wget.html

sed -n '/http/,/jpg/p' wget.html

如何在linux中从http://搜索到jpg?或者除了sed之外还有其他方式,grep?

1 个答案:

答案 0 :(得分:1)

据我了解,您想从一些下载的HTML中提取所有http://...jpg字符串。我想理想的是每行一个。

$ cat wget.html | grep -e 'http:.*jpg' |sed -e 's/^.*\(http:.*jpg\).*$/\1/g'

grep只选择包含http refs的行,sed会从这些行中删除所有其他垃圾。

这仅限于每个HTML行一个http ref。如果无法假设,您可以添加类似“tr'>'的内容管道开头的'\ 010'用多个标签拆分行。

示例:

sal-xps:~  $ cat wget.html
<body>
 <img src="http://foo.jpg">
 <img src="http://bar/gronk.jpg">
</body>


sal-xps:~  $ cat wget.html | grep -e 'http:.*jpg' |sed -e 's/^.*\(http:.*jpg\).*$/\1/g'
http://foo.jpg
http://bar/gronk.jpg