Bash - командный интерпретатор GNU Bourne

Сопоставление с образцом


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

Специальные символы шаблона имеют следующие значения:

*

Соответствует любой строке, в том числе, пустой.

?

Соответствует любому одиночному символу.

[...]

Соответствует любому из символов в квадратных скобках. Пара символов, разделенная дефисом, задает диапазон; любой символ, лексически находящийся между этими двумя символами, включительно, будет соответствовать этой конструкции. Если сразу после [ идет символ ! или ^, то конструкции соответствует любой символ, не указанный в квадратных скобках. Для сопоставления с дефисом (-) его необходимо указать в квадратных скобках первым или последним. Для задания закрывающей квадратной скобки (]), ее необходимо указать как первый символ набора.

В квадратных скобках можно задавать классы символов с помощью конструкции [:класс:], где класс - один из следующих классов, определяемых стандартом POSIX.2:

alnum alpha ascii blank cntrl digit graph lower print punct space upper xdigit

Класс символов сопоставляется с любым символом, принадлежащим к этому классу.

В квадратных скобках можно задавать класс эквивалентности с помощью конструкции [=c=], соответствующей всем символам с тем же порядком сортировки

(collation weight), определяемым текущей локалью, что и символ c.

В квадратных скобках конструкция [.символ.] соответствует символу с указанным порядком сортировки.

Если с помощью встроенной команды установлена опция командного интерпретатора , распознается ряд дополнительных операторов сопоставления с образцом. В следующем описании список_шаблонов - это список из одного или нескольких шаблонов через вертикальную черту (|). Составные шаблоны можно формировать из одного или нескольких следующих подшаблонов:

?(список_шаблонов)

Соответствует нулю или одному вхождению указанных шаблонов

*(список_шаблонов)

Соответствует нулю или более вхождений указанных шаблонов

+(список_шаблонов)

Соответствует одному или оболее вхождений указанных шаблонов

@(список_шаблонов)

Соответствует ровно одному вхождению указанных шаблонов

!(список_шаблонов)

Соответствует любой строке, кроме соответствующей одному из указанных шаблонов.



Содержание раздела