私はpom.xml
次の形式を持っています:
<project>
<modelVersion>1.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
2.0.0、3.0.0、4.0.0などのようにsed
/コマンドを実行するたびにawk
modelVersion番号を+1ずつ増やしたいと思います。pom.xml
したがって、コマンドを実行するときに予想される出力は次のようになります。
<project>
<modelVersion>2.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
同じコマンドを再実行すると、出力は次のようになります。
<project>
<modelVersion>3.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
どちらが好まれますか?どうすればいいですか?
ベストアンサー1
次のawk
スクリプトを使用します。
awk '/<modelVersion>/ {
temp = $0
sub(/.*<modelVersion>/, "", temp)
sub(/\..*/, "", temp)
incremented = temp+1
sub(temp, incremented)
}
{ print }
'
- を含むことがわかりました
modelVersion
。 - 行全体の一時コピーを作成します。
<modelVersion>
その行(およびその前のすべての項目)のコピーから削除します。- 次に、最初のエントリを削除します。
.
そしてそれ以降のすべて。これにより、バージョン番号の最初のコンポーネントが残ります。例:42.0.0
→42
。 - 1を加えます(例:→
43
)。 - 次に、入力行を修正して現在の数字を増分数字に置き換えます。
コマンドを実行しawk
、出力をファイルに出力します。
ああ(上)' pom.xml> new.xml出力が正しいことを確認してから
mv new.xml pom.xml