Я использую Ubuntu 10.10 и использую Grep для обработки некоторых файлов HTML.
Вот фрагмент кода HTML:
<a href="video.php?video=one-hd.mov"><img src="/1.jpg"><a href="video.php?video=normal.mov"><img src="/2.jpg"><a href="video.php?video=another-hd.mov">
Я хотел бы извлечь one-hd.mov
и another-hd.mov
, но игнорировать normal.mov
.
Вот мой код:
example='<a href="video.php?video=one-hd.mov"><img src="/1.jpg"><a href="video.php?video=normal.mov"><img src="/2.jpg"><a href="video.php?video=another-hd.mov">'
echo $example | grep -Po '(?<=video.php\?video=).*?(?=-hd.mov">)'
Результат:
one
normal.mov"><img src="/2.jpg"><a href="video.php?video=another
Но я хочу
one
another
Там есть несоответствие.
Это из-за так называемого жадного регулярного выражения?
Я пою GREP, но любые инструменты командной строки bash могут решить эту проблему, такие как sed и т. Д.
Большое спасибо.