sed/awk を使用して pom.xml のバージョン番号を更新します。

sed/awk を使用して pom.xml のバージョン番号を更新します。

私は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/コマンドを実行するたびにawkmodelVersion番号を+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.042
  • 1を加えます(例:→ 43)。
  • 次に、入力行を修正して現在の数字を増分数字に置き換えます。

コマンドを実行しawk、出力をファイルに出力します。

ああ(上)' pom.xml> new.xml
出力が正しいことを確認してから

mv new.xml pom.xml

おすすめ記事