Вы можете использовать одну из следующих команд и присвоить результат переменной:
ВХОД:
$ cat version.txt
abc
version = "0.0.1-SNAPSHOT"
123
grep:
$ grep -oP '(?<=^version\s=\s")[^"]*' version.txt
0.0.1-SNAPSHOT
perl:
$ perl -ne 'if(/^version/){s/^version\s*=\s*|"//g; print}' version.txt
0.0.1-SNAPSHOT
Есть много других способов достижения вашего результата (sed
, awk
, ...)
Пояснения:
1) Вы используете grep
в режиме perl
и используете утверждение с задним взглядом, в этом случае я предположил, что ваш равный всегда окружен1 и только 1 пробел
2) Подход perl
является более гибким (0,1 или более пробелов могут быть расположены вокруг одинакового символа), здесь принцип заключается в том, что вы определяете строку, начинающуюся с version
, затем вы удаляете version =
и двойные кавычки перед печатью результата.