Я хочу выполнить следующую замену vim как однострочную в терминале с Perl. Я предпочел бы учесть любые случаи появления пробелов или новых строк, а не явно обслуживать их, как я ниже.
%s/blockDontForget">\n*\s*<p><span><a\(.*\)<\/span>/blockDontForget"><p><a\1/g
Я пробовал это:
perl -pi -e 's/blockDontForget"><p><span><a(.*)<\/span>/blockDontForget"><p><a$1/msg'
Полагаю, я неправильно понимаю флаги. Куда я иду не так? Спасибо.
EDIT:
Приведенный выше пример убирает интервалы из следующего html:
<div class="block blockDontForget">
<p><span><a href="../../../foo/bar/x/x.html">Lorem Ipsum</a></span></p>
EDIT:
Это просто <span>
и </span>
, которые находятся между <p>
и <a>
из класса "blockDontForget"
</div>
, которые я хочу удалить (есть много или эти blockDontForget
делений с интервалами внутри якорей, которые я хочу сохранить).