Функция контекстной замены
Формат:
(2)s/< Регулярное выражение > /< Замена > /< флаги >
Функция s заменяет вхождение < Регулярного выражения > в pattern space на < Замену > .
< Регулярное выражение > : Аналогично выше данному, но может быть заключено не в "/ /" а в любые другие символы (не " " (пробел) и не newline ).
< Замена > : Любой набор символов. Используются специальные символы:
"& " - Заменяется на строку, указанную в регулярном выражении.
"\d" - , где d - цифра, указывает на d -тое выражение, заключенное в "\(","\)" в регулярном выражении.
< Флаги > :
g - Глобальная замена: заменить все вхождения в строке.
p - Печатать (выводить на output ) строки, в которых была осуществлена замена.
w wfile - Выводить в файл wfile строки, в которых была осуществлена замена.
Примеры:
s/to/by/w changes - Заменить в тексте первое вхождение "to" в каждой строке, если таковое есть, на "by" и измененные строки сохранить в файле "changes" .
/iiii/s/[Oo]lga/ Olga V.Galina/p - Заменить в тексте, в строках, где встречается вхождение "iiii" , первое вхождение подстроки "olga" или "Olga" на " Olga V.Galina" , при этом измененные строки выводить на печать.
s/[.,;:?]/*sign& *sign& **/g - Заменить в тексте каждое вхождение одного из знаков ".,;:?" в строку на "*sign& *" , где & будет тем знаком, который стоял прежде, например, "." на "*sign.*" , "?" на "*sign?*" и т. д.