Você pode usar:
grep -Po "(?<=Version: )([0-9]|\.)*(?=\s|$)"
Se você tiver MIME-Version: 1.0
em vez de MIME-Version: 1.0\n
:
grep -Po "(^|\s)+(Version: )\K([0-9]|\.)*(?=\s|$)"
Explicação:
-
-P
significa PCRE,-o
para obter apenas a parte correspondente da linha -
(^|\s)+(Version: )
corresponderá aVersion
no início ou um ou mais espaços em branco, o\K
descartará a correspondência -
([0-9]|\.)*
corresponderá a qualquer dígito ou.
zero ou mais vezes, é isso que queremos -
O token anterior será seguido por qualquer caractere de espaço em branco ou fim da linha
Teste:
$ cat file.txt
Version: 3.1.5
* Version: 3.1.5
MIME-Version: 1.0\n
$ grep -Po "(?<=Version: )([0-9]|\.)*(?=\s|$)" file.txt
3.1.5
3.1.5
$ cat file.txt
Version: 3.1.5
* Version: 3.1.5
MIME-Version: 1.0
$ grep -Po "(^|\s)+(Version: )\K([0-9]|\.)*(?=\s|$)" file.txt
3.1.5
3.1.5