我正在尝试获取发行版名称和版本号以输入 conky。我目前正在使用以下
rpm --query centos-release
导致
centos-release 7-4.1708.e17.centos.x86_64
我如何将其减少到 just centos 7-4.1708.e17
?
在尝试了所有建议后,我最终将其输入了我的 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"}
有了这个结果
centos-release-7-4.1708.e17
以自定义格式打印 RPM 包的名称和详细信息的更通用方法是命令的
--qf
or--queryformat
选项rpm
。部分引用
man rpm
:rpm
您可以通过运行查看知道的标签名称列表rpm --querytags
。这是一个很长的列表,所以我不会在这里完整地复制它。但是,一些感兴趣的标签包括:不幸的是,对于您的确切用例,有
name
问题的包的 是centos-release
,不是centos
所希望的,而release
是4.1708.el7.centos
。因此,最接近纯
rpm
查询格式所需的输出是:(注意“centos”使用静态字符串而不是
%{n}
标签,它会扩展为“centos-release”。还要注意你想要的输出中的空格,尽管这可能是一个错字。)在我的测试箱上,这个命令产生:
使用 sed:
只有外壳:
如果您的版本在和数字之间有一个破折号(或空格),
centos-release
您可以...sed
使用( )将 "centos-release-" 替换为 ""s/^centos-release.//
和s/\.centos.*//
)