Você pode tentar isso,
virtualbox --help | head -n 1 | awk '{print $NF}'
ou
$ echo $(virtualbox --help | head -n 1 | awk '{print $NF}')
4.3.6
Como funciona
Passo -1
virtualbox --help
oferece uma saída longa dizendo muitas opções, etc. Mas suas primeiras linhas são como
Oracle VM VirtualBox Manager 4.3.6
(C) 2005-2013 Oracle Corporation
Todos os direitos reservados.
...
Passo -2
| head -n 1
|
é chamado de pipe. Tem ótima aplicação na linha de comando. Ele passa a expressão inteira para o próximo comando head
. head -n 1
imprime apenas a primeira linha. veja man head
para mais. Neste estágio, a saída é apenas
Oracle VM VirtualBox Manager 4.3.6
Passo -3
| awk '{print $NF}'
Novamente, as coisas restantes são passadas para awk
. Neste estágio, awk
vê a linha inteira como combinações de poucos campos separados por espaço e imprime apenas o último campo da expressão acima. Então você obtém apenas a versão. Veja man awk
para mais.