GNU grep
является альтернативой sed
:
$ echo "A10.1.1-Vers10" | grep -oP '(?<=^A)[0-9]+'
10
Опция -o
указывает grep
печатать только совпадающие символы.
-P
опция указывает grep
на совпадение с регулярными выражениями Perl, что позволяет (?<=
проверять утверждение нулевой длины.
проверочное утверждение (?<=^A)
гарантирует наличие A
в начале строки, ноне включает его как часть совпадения для вывода.
Если вам нужно сопоставить большее количество строки версии, вы можете использовать утверждение с упреждением:
$ echo "A10.1.1-Vers10" | grep -oP '(?<=^A)[0-9]+(?=\.[0-9]+\.[0-9]+-.*)'
10