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-подобный беспорядок с «~», который вводит совершенно новое класс расширений, включая полные регулярные выражения с:
«~ (Е) (регулярное выражение)»
Больше примеров можно найти в Finnbarr P. Murphy's blog
При использовании задать расширенное будет работать, это внешняя программа и будет замедлить сценарий много. – user1683793