Я делаю автоматическую загрузку нескольких изображений с использованием источника кадров HTML. Так хорошо, Сед, Вегет. Пример источника кадра:
<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
Но есть одна неприятная линия. Эта строка, obvioulsy, является ошибкой на сайте, или чем-то еще, но это неправильно, я не могу изменить это, однако. ;)
<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_Frigate16.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
Вы понимаете, почему. Сед жадный, и в этом случае это очевидно.
Теперь вопрос, как мне избавиться от этого углового корпуса? То есть, сделайте его нежадным и остановите его на ПЕРВОМ .jpg? выделенный текст