СБОРКА СТРОК И БЛОКОВ РЕДАКТИРОВАНИЯ В ОТДЕЛЬНЫЙ ФАЙЛ

Контексты поиска/замены для выборки одной строки задаются обычным образом, а для поиска блока редактирования, который может включать несколько файловых строк, задается блоковый контекст поиска, в котором специальные конструкции (%% и $$) определяют поиск начальной и конечной строки блока:

%%<контекст поиска начальной строки блока>
<контекст поиска внутренних строк блока>
$$<контекст поиска конечной строки блока>

В качестве ограничителей начала и конца блока могут использоваться спецконструкции без контекстов:

%%%
(в этом случае начальная строка блока совпадает с началом файла)
$$
(в этом случае конечная и начальная строки блока совпадают)
$$$
(в этом случае конечная строка блока совпадает с концом файла)

Если для контекста поиска отсутствует контекст замены, то это означает, что найденная по контексту поиска строка войдет в сводный файл без изменения.

Примеры блоковых контекстов:

Контекст поиска:  Контекст замены:     Комментарий:
================================================================
%%<p>                               блок между обрамляющими
<table>                             граничными тегами <p> и </p>,
$$</p>                              содержащий таблицу с тегом
                                    <table>
=================================================================		
%%{фаза}|{фазов}                    блок карточек, заголовок
{@[}                                которых содержит производные
$${~@[}            ""               от слова фаза, а тело состоит
                                    из конструкций, содержащих
                                    квадратную скобку
=================================================================		

В качестве начальной и конечной строк блока могут быть как отдельные фиксированные конструкции (например, %%<p> и $$</p>), так и произвольные строки, содержащие контекст поиска начальной строки блока (например, %%{фаза}|{фазов}). В последнем случае, конец искомого блока определяется отсутствием в строке заданного контекста начальной строки блока и контекста внутренней строки блока, но тогда он не должен быть включен в блок, что достигается заданием пустого контекста замены "".

Сборка строк и блоков редактирования в отдельный файл может успешно использоваться в сценариях , где существует возможность организовать итерационный процесс для программно изменяемых контекстов поиска.