bash - 用于从工件读取最新版本的 Shell 脚本
问题描述
在我的工件中有一个文件"maven-metadata.xml",其中包含所有版本。我想从此文件中获取最新版本。但问题是我想要一个稳定的版本。例如在这个 maven-metadata.xml 文件中:
<metadata>
<groupId>com.platform</groupId>
<artifactId>abc1.2</artifactId>
<versioning>
<latest>2.6.0-425-75b5083</latest>
<release>2.6.0-425-75b5083</release>
<versions>
<version>2.5.0-132-b616a37</version>
<version>2.5.1-RC1</version>
<version>2.5.2</version>
<version>2.6.0-425-75b5083</version>
</versions>
<lastUpdated>20201011113748</lastUpdated>
</versioning>
</metadata>
但我想获取最新的稳定版本(没有字母数字),即 2.5.2 如何在 shell 脚本中过滤这些数据?
我也不能直接读取<latest>
标签,因为它可能包含字母数字版本。
解决方案
假设版本按升序排序,您可以使用以下命令提取不带字母数字的最新版本。
sed -n 's/.*<version>\([0-9.]*\)<\/version>.*/\1/p' maven-metadata.xml | tail -n 1
推荐阅读
- python-3.x - 使用 os 模块返回位于 Python 中当前工作目录正上方的目录名称
- python - 属性实例的 Django ListView
- ios - iOS:以编程方式捕获大于屏幕的视图屏幕截图
- html - 如何使背景颜色占据屏幕/页面的整个高度?
- flask - 如何在Flask中请求最后一段url
- javascript - 如何解析跳过三个主要节点的 JSON 数据?
- mysql - MySQL InnoDB FULLTEXT 索引随机忽略记录
- php - 如何在这里使用 esc_attr?
- sql - 如何使用带有连接表的 postgres 计算会计余额
- puppeteer - puppeteer 在信用卡输入字段中输入的问题