我们想检查是否安装了以下 rpm 版本,所以我们这样做:
rpm -qa | egrep -c 'python-argcomplete-0.3.7-1|postgresql-libs-9.2.13-1.el7_1.x86_64'
因为更高版本的postgresql-libs
也可以安装为 -postgresql-libs-9.2.19-1.el7_1.x86_64
然后我们尝试捕获两个版本,如下所示,但没有成功
rpm -qa | egrep -c 'python-argcomplete-0.3.7-1|postgresql-libs-9.2.[^0-9]-1.el7_1.x86_64'
预期结果应该是 2 但我们得到 1
答案1
[^0-9]
匹配任何字符外部0-9,因此您的正则表达式不会与您可能遇到的任何软件包版本匹配。如果您想匹配 13 或更高版本,则需要(1[3-9]|[2-9][0-9])
(假设版本的最后一个组件不会达到 100)。
你可以rpm
直接问:
rpm -q python-argcomplete-0.3.7 'postgresql-libs-9.2.*'
这将匹配任何 9.2 版本postgresql-libs
,这可能不完全是您所追求的,但在许多情况下它应该足够好。