Estou tentando obter a versão instalada systemd
no comando a seguir, mas ele retorna todas as linhas que contêm a palavra-chave " systemd
".
# dpkg -l | grep " systemd "
ii gnome-logs 42.0-1 amd64 viewer for the systemd journal
ii libsystemd0:amd64 249.11-0ubuntu3.12 amd64 systemd utility library
ii systemd 249.11-0ubuntu3.12 amd64 system and service manager
ii systemd-container 249.11-0ubuntu3.12 amd64 systemd container/nspawn tools
Como fazer retornar apenas a seguinte linha:
# dpkg -l | grep "__the_rule_for_systemd_"
ii systemd 249.11-0ubuntu3.12 amd64 system and service manager
E então posso usar o awk para obter a versão:
# dpkg -l | grep "__the_rule_for_systemd_" | awk '{print $3}'
Aqui está o resultado esperado:
249.11-0ubuntu3.12
Como escrever o " __the_rule_for_systemd_
" for grep
ou existe algum outro comando que possa obter a versão instalada do systemd
?
Observação:
# package_name="systemd"
# dpkg -l | grep " $package_name "
O " __the_rule_for_systemd_
" também deve funcionar em outros pacotes, deve ser capaz de obter qualquer pacote por essa regra, não apenas para " systemd
".
Isso deve servir:
Se você deseja retornar apenas o número da versão (para um script), pesquise e corte a string com
awk
: