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:
-
-Psignifica PCRE,-opara obter apenas a parte correspondente da linha -
(^|\s)+(Version: )corresponderá aVersionno início ou um ou mais espaços em branco, o\Kdescartará 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