Я хочу заменить часть следующего html-текста (отрывок из огромного файла), чтобы обновить старое форматирование форума (результат очень плохого переноса форума, выполненного 2 года назад) на обычное форматирование phpBB:
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>written by User</i>
это должно быть отфильтровано в:
[quote=User]
Я использовал следующее регулярное выражение в sed
s/<blockquote.*written by \(.*\)<\/i>/[quote=\1]/g
это работает в данном примере, но в реальном файле несколько таких кавычек могут быть в одной строке. В этом случае sed слишком жадный и помещает все между первым и последним совпадением в тег [quote=...]. Кажется, я не могу заставить его заменить каждое появление этого шаблона в строке... (Я не думаю, что есть какие-либо вложенные кавычки, но это сделало бы это еще сложнее)
sed
с регулярным выражением Perl:ssed
- person Lev Levitsky   schedule 10.06.2012