我正在使用 html 框架源自动下载许多图像。太棒了,Sed,wget。帧源示例:
<td width="25%" align="center" valign="top"><a href="images/display.htm?concept_Core.jpg"><img border="1" src="t_core.gif" width="120" height="90"><font size="1" face="Verdana"><br>Hyperspace Core<br>(Rob Cunningham)</font></a></td>
所以我这样做:
sed -n -e 's/^.*htm?\(.*jpg\).*$/\1/p' concept.htm
得到看起来像这样的部分:
concept_Core.jpg
然后这样做:
wget --base=/some/url/concept_Core.jpg
但是有一条讨厌的线。那条线,很明显,是网站中的一个错误,或者任何可能的错误,但它是错误的,但是我无法更改它。;)
<td width="25%" bla bla face="Verdana"><a href="images/display.htm?concept_frigate16.jpg" target="_top"><img bla bla href="images/concept_frigate16.jpg" target="_top"><br>Frigate 16<br>
即,将其中的两个“ concept_Frgate16.jpg ”排成一行。我的剧本给了我
concept_frigate16.jpg" target="_top"><img border="1" src="t_assaultfrigate.gif" width="120" height="90" alt="The '16' in the name may be a Sierra typo."></a><a href="images/concept_frigate16.jpg
你明白为什么。Sed 是贪婪的,这显然出现在这种情况下。
现在的问题是,我该如何摆脱这种极端情况?也就是说,让它不贪婪,让它停在第一个.jpg 上?强调文本