我有一个pom.xml包含一行
<version>x.y.z-tag</version>
在哪里标签可能是:快照、alpha、beta 或发布版。
和XYZ是一个数字版本,例如:1.0.0 或 1.2.1 ....
我想通过给定参数对该行进行更改。例如:
现有版本:<version>1.0.0-snapshot</version>
给定参数:1.0.1-alpha
输出:<version>1.0.1-alpha</version>
./script.sh newVersion pom.xml
PS:pom.xml 包含很多以<version>
... 开头的行,因此我的更改应该应用到<version>
以下模式:x.y.z-tag
答案1
#!/bin/sh
tag=$(grep '<version>' $2 | sed 's/<version>[^-]*-\(.*\)<\/version>/\1/')
sed -i "s/<version>.*<\/version>/<version>$1-${tag}<\/version>/" $2
将其另存为script.sh
,使其可执行 ( chmod +x script.sh
) 并使用以下命令运行它:
./script.sh <new_version> pom.xml