我在我的 linux 机器中安装了一个名为 my-scheduler-1.1.0-1112 的程序
当我做 rpm -qa | grep my,它列出如下所示:
my-scheduler-1.1.0-1112
我想要一个可以提取 1.1.0-1112 的命令,它是我的 shell 脚本中的版本部分。
在 shell 脚本中提取它的命令是什么?
对于这个问题,您可以尝试使用 rpm 的--queryformat参数。
像:
rpm -qa --queryformat '%{NAME}' | grep my
应该打印
my-scheduler
没有版本字符串...什么比用 sed 或类似的东西更好。因为你可以得到类似package-1.0.3-rc2
或so..
对于版本发布:使用:
--queryformat "%{VERSION}-%{RELEASE}"
也许会很有用阅读http://www.rpm.org/max-rpm/ch-queryformat-tags.html - 这里有很多有用的查询格式标签,所以你可以直接得到你想要的和你想要的格式想要,无需脚本...
不确定您可能会遇到哪些其他版本字符串,但您可以尝试:
sed -e 's/^[^0-9]*-//g'
这是一个sed
替换。它匹配正则表达式^[^0-9]*-
,即:
-
它替换了与空白匹配的所有内容,基本上将其删除。这应该留下版本字符串之后的所有内容。