Ksh поддерживает ограниченные расширенные шаблоны начиная с ksh88, используя синтаксис
special '(' pattern ')'
.
В ksh88 префиксы специальных символов изменяют количество ожидаемых совпадений:
'*' for zero or more matches
'+' at least one match
'@' for exactly one match
'?' for zero or one matches
'!' for negation
В ksh93 это было расширено с помощью
'{' min ',' max '}'
, чтобы выразить точный диапазон:
for w in 1423 12 "" abc 23423 9 33 3 333
do
[[ $w == {1,3}(\d) ]] && print $w has between 1 and three digits
[[ $w == {2}(\d) ]] && print $w has exactly two digits
done
И, наконец, вы можете иметь подобный perl беспорядок с помощью '~', который вводит целый новый класс расширений, включая полные регулярные выражения с:
' ~ (E) (regex) '
Дополнительные примеры можно найти в Finnbarr P.Блог Мерфи