Ваш шаблон является регулярным выражением, совместимым с PCRE, [\s\S]
соответствует любому символу в шаблоне PCRE, но не с использованием регулярного выражения POSIX BRE, которое вы используете со своим grep
, поскольку вы не использовали опцию -P
.
Если вы хотите сделать это с помощью GNU grep, используйте
grep -oPm 1 'Version\s*:\s*\K\d+(?:\.\d+)+' *.txt
См. это онлайн-демо
Подробности
Version
- Version
строка \s*:\s*
- двоеточие, заключенное в 0+ пробелов \K
- оператор сброса совпадений \d+
- 1+ цифр, а затем (?:\.\d+)+
- 1 или более повторений .
и 1+ цифр.
Вы можете сделать это с помощью awk
:
awk '/^Version : [0-9]+/{print $3; exit}' *.txt
См. online awk demo :
s="Text
Version : 3.4.0.0 xxx xxx xxx
More text
Version : 5.6.0.0 xxx xxx xxx"
awk '/^Version : [0-9]+/{print $3; exit}' <<< "$s"
# => 3.4.0.0
Подробнее
^Version : [0-9]+
находитстрока, начинающаяся с Version : <1 or more digits>
{print $3; exit}
, выводит значение поля 3 и останавливает обработку, получая только первое совпадение.