Estou tentando obter o nome da distribuição e o número da versão para entrar no conky. Atualmente estou usando o seguinte
rpm --query centos-release
resultando em
centos-release 7-4.1708.e17.centos.x86_64
Como faço para reduzi-lo a apenas centos 7-4.1708.e17
?
Depois de tentar todas as sugestões acabei inserindo isso no meu conky
${font Roboto:bold:size=8}${goto 95}${color1}Distribution $alignr ${execi > 60 a=$(rpm --query centos-release)
a=${a#centos-release }
a=${a%%\.centos.*}
echo "$a"}
com este resultado
centos-release-7-4.1708.e17
Uma abordagem mais geral para imprimir os nomes e detalhes dos pacotes RPM em formatos personalizados é a opção
--qf
ou do comando.--queryformat
rpm
Citando
man rpm
em parte:Você pode ver a lista de nomes de tags que
rpm
conhece executandorpm --querytags
. É uma lista longa, então não vou reproduzi-la aqui na íntegra. No entanto, algumas tags de interesse incluem:Infelizmente, para o seu caso de uso exato
name
, o do pacote em questãocentos-release
nãocentos
é o desejado e orelease
é4.1708.el7.centos
.Portanto, o mais próximo que você pode chegar da saída desejada com
rpm
formatação de consulta pura é:(Observe o uso de uma string estática para "centos" em vez da
%{n}
tag, que se expandiria para "centos-release". Observe também o espaço que você tem na saída desejada, embora possa ser um erro de digitação.)Na minha caixa de teste, este comando produz:
Com sed:
Com apenas casca:
Se o seu lançamento tiver um traço (ou espaço) entre
centos-release
e o número, você pode...sed
(s/^centos-release.//
) es/\.centos.*//
)