私はxml ファイルの線を含む
<version>x.y.z-tag</version>
どこ鬼ごっこスナップショット、アルファ、ベータ、リリースのいずれかになります。
そしてXYZ1.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