Используйте SED для вставки новой строки в определенных точках в файле .html, который является только одной очень длинной строкой - PullRequest
0 голосов
/ 16 октября 2019

Возможно, это дубликат, но я не могу найти правильный вопрос ...

У меня есть HTML-файл длиной всего одну строку, и я хотел бы вставить новую строку сразу послекаждый <div class=".+ uiBoxWhite noborder">, где .+ - это серия слов, которые содержат специальные символы и кажутся в основном случайными.

Я думал, что

sed -r 's/<div class=".+ uiBoxWhite noborder">/\n<div class="uiBoxWhite noborder">/g' old.html > new.html

будет работать, но это не так«т. Я использую неправильный шаблон? Или неправильный символ перевода строки?

1 Ответ

1 голос
/ 16 октября 2019

Это может работать для вас (GNU sed):

sed -E 's/(<div class=")[^>]*(uiBoxWhite noborder">)/\n\1\2/g' oldFile  > newFile

Используйте [^>]*, чтобы ограничить оставшееся совпадение в пределах текущего деления.

...