От чего лучший способ состоит в том, чтобы использовать GREP для замены текста in
через </div>
с walked down the path
The cat in the hat
jdlsknklnvlsdknld ======> The cat walked down the path
jkgsabkjkjksjakh
</div>
Соответствие нескольким строкам может быть довольно легко сделано с помощью Perl.
perl -p0e 's# in .*</div># walked down the path.#sm'
Кратко помещенный,
-p0e
превратите Perl в a sed
- как потоковая передача многострочного процессора.s#...#...#
часть показывает, что Вы хотите заменить все символы от in
кому: </div>
(первый пункт) с walked down the path
(второй пункт).sm
примерно означает "символы новой строки обработки как все другие символы.Этот ответ предполагает, что входной текст имеет только один такой шаблон.
Страницы соответствующей документации могут быть найдены здесь и здесь на официальном сайте Perl.
Использовать grep
заменять текст? Удача с этим.
sed
сделает это для Вас:
sed 's/in the hat/walked down the path/;/The cat/,/<\/div>/ {/The cat/n;d}' file
s/old/new/
замена old
с new
;
разделяет команды/begin/,/end/
действуйте в диапазоне от строки с /begin/
к строке с /end/
{}
группировка, чтобы команды использовали на диапазоне/The cat/n
исключите строку с /The cat/
(ничего не сделайте и считайте следующую строку),d
удалите (остальная часть строк в диапазоне)