bash + сравнение строк с регулярным выражением

Для записи, в zshфункциональность indexOf соответствует:

$ set foo bar baz bar foo
$ echo $@[(i)bar] $@[(I)bar]
2 4

($2— это первое совпадение (с использованием iфлага нижнего индекса ), $4последнее совпадение(Iфлаг нижнего индекса )).

-2
26.01.2021, 10:48
1 ответ

=~— бинарный оператор из руководства 3.2.5.2 Условные конструкции:

An additional binary operator, ‘=~’, is available, with the same precedence as ‘==’ and ‘!=’. When it is used, the string to the right of the operator is considered a POSIX extended regular expression[...]

{a..z}является расширением фигурной скобки 3.5.1 Расширение фигурной скобки:

Brace expansion is a mechanism by which arbitrary strings may be generated.


Итак, вам нужен шаблон регулярного выражения для соответствия строке:

$ disk=sdb    
$ [[ $disk =~ ^sd[a-z]$ ]] && echo "$disk is real disk"
$ sdb is real disk
4
18.03.2021, 22:34

Теги

Похожие вопросы