Это синтаксис соответствия символов в стиле регулярных выражений; из Справочного руководства Bash , §3.5.8.1 (сопоставление с образцом) :
[...]
Соответствует любому из вложенных символов. Пара символов, разделенных дефисом, обозначает выражение диапазона; любой символ, который сортируется между этими двумя символами включительно, с использованием последовательности сортировки и набора символов текущей локали, сопоставляется. Если первый символ, следующий за ‘[’
, является ‘!’
или ‘^’
, тогда любой символ не прилагается совпадает. ‘−’
может быть сопоставлено включением его в качестве первого или последнего символа в наборе. ‘]’
может быть сопоставлено включением его в качестве первого символа в наборе. Порядок сортировки символов в выражениях диапазона определяется текущей локалью и значением переменной оболочки LC_COLLATE
, если установлено.
Например, в языковом стандарте C по умолчанию ‘[a-dx-z]’
эквивалентно ‘[abcdxyz]’ . Многие локали сортируют символы в порядке словаря, и в этих локалях ‘[a-dx-z]’
обычно не эквивалентно ‘[abcdxyz]’
; например, это может быть эквивалентно ‘[aBbCcDdxXyYz]’
. Чтобы получить традиционную интерпретацию диапазонов в выражениях в скобках, вы можете принудительно использовать языковой стандарт C, задав для переменной среды LC_COLLATE
или LC_ALL
значение ‘C’
.
В пределах ‘[’
и ‘]’
классы символов могут быть указаны с использованием синтаксиса [:class:]
, где class является одним из следующих классов, определенных в стандарте posix:
alnum alpha ascii blank cntrl digit graph lower
print punct space upper word xdigit
Класс символов соответствует любому символу, принадлежащему этому классу. Класс символов слова соответствует буквам, цифрам и символу ‘_’
.
В пределах ‘[’
и ‘]’
класс эквивалентности может быть указан с использованием синтаксиса [=c=]
, который соответствует всем символам с таким же весом сортировки (как определено в текущей локали), что и символ c.
В пределах ‘[’
и ‘]’
синтаксис [.symbol.]
соответствует символу сопоставления символов.
(акцент добавлен к наиболее распространенным шаблонам использования)