我在artifactory metadata.xml中有一个包含以下信息的远程文件
<version>3.1.2.0</version>
<version>3.1.2.506</version>
<version>3.1.2.507</version>
<version>3.1.2.508</version>
如果我分支名称是release/3.1.2,通过解析上述xml文件,shell命令需要返回3.1.2.508,这是最新版本。
任何人都可以帮助。这是在gitlab ci cd管道中,试图基于最新版本提升版本。我没有使用<latest></latest>
的选项
谢谢你,谢谢
3条答案
按热度按时间pdsfdshx1#
如果
xmllint
可用(在大多数Linux发行版中,它都是libxml工具),则此命令将从提供的示例中获取最新版本如果版本不符合顺序
包含
xmllint
的软件包(在我的本地发行版上,即)使用
gawk
单行程序的替代方案给定
结果
dsekswqp2#
可以使用
xq
utility查询xml文件xq -x "${xpath_query}" $filename
将从文件中提取所查询的XML元素的文本。这被输送到sort -rn
中,使用自然(-n
)排序以反向(-r
)顺序对这些进行排序,然后我们通过输送到head -n 1
来获取排序输出的第一行。如果你对文件的内容和版本字符串的格式比较有信心,你可能只需要使用grep表达式,而不需要真正解析XML:
pu82cl6c3#
使用sed命令