Команда сравнивает регулярное выражение exp
и строку string и копирует string в переменную, заданную именем
varName. Если совпадение найдено, то при копировании часть строки string,
соответствующая exp, замещается на subSpec. Если subSpec
содержит один из символов ‘&’ or ‘\0’, то он заменяется на часть
строки string, которая соответствует шаблону exp. Если subSpec
содержит ‘\n’, где n – целое число от ‘1’ до ‘9’, то это выражение заменяется
на часть строки string, которая соответствует n-ому заключенному в скобки
выражению в exp. Чтобы избежать специальной интерпретации перечисленных
символов и символа “обратный слеш”, их необходимо экранировать символом “обратный
слеш”. Чтобы избежать возможных проблем с интерпретацией символов “обратный
слеш” в exp, проще всего заключить exp в фигурные скобки.
Если начальные аргументы команды начинаются
с символа ‘-’, они считаются опциями команды. Ниже приведен список
поддерживаемых опций.
-all
Ищутся все подобласти string, соответствующие
exp, и для каждой из них производится замена. Символы ‘&’
и ‘\n’ замещаются на очередной фрагмент string, соответствующий
exp. То есть каждый раз они могут замещаться на различные выражения.
-nocase
При поиске соответствующих фрагментов строки
не различаются буквы в верхнем и нижнем регистре. Тем не менее, подстановка
производится в исходном регистре.
--
Означает конец опций. Следующий аргумент будет
рассматриваться как exp, даже если он начинается с ‘-’.
Команда возвращает количество найденных (и,
соответственно, замещенных) интервалов. Правила соответствия строк регулярным
выражениям приведены в описании команды regexp.