Ich habe einpom.xmleine Zeile enthalten
<version>x.y.z-tag</version>
WoEtikettkönnte sein: Snapshot, Alpha, Beta oder Release.
Undxyzist eine Versionsnummer wie: 1.0.0 oder 1.2.1 ….
ich möchte diese Zeile durch einen bestimmten Parameter ändern. Zum Beispiel:
bestehende Version:<version>1.0.0-snapshot</version>
gegebener Parameter:1.0.1-alpha
Ausgabe:<version>1.0.1-alpha</version>
./script.sh newVersion pom.xml
PS: pom.xml enthält viele Zeilen, die mit ... beginnen , daher sollten meine Änderungen nach einem Muster <version>
angewendet werden :<version>
x.y.z-tag
Antwort1
#!/bin/sh
tag=$(grep '<version>' $2 | sed 's/<version>[^-]*-\(.*\)<\/version>/\1/')
sed -i "s/<version>.*<\/version>/<version>$1-${tag}<\/version>/" $2
Speichern Sie dies unter script.sh
, machen Sie es ausführbar ( chmod +x script.sh
) und führen Sie es aus mit:
./script.sh <new_version> pom.xml