sed コマンドは正規表現を使用して主要なマイナーバージョン番号を置き換えます。

sed コマンドは正規表現を使用して主要なマイナーバージョン番号を置き換えます。

バージョンの週、負、リリース番号を置き換えるためにSedを使用しています。

私:

バージョン=10.2.0.1(バージョン=major.minor.release.buildnumber)

変えたくないビルド番号このバージョン番号では。sedコマンドを使用してメジャー、マイナー、バージョンを変更したいと思います。

既存の

version=10.20.0.1

出力したいversion=11.21.2.1 (ビルド番号は変更しないでください(私のビルドの最後の部分))。

私は次のコマンドを使用します

sed -i -r s/version=(.*)/version=11.21.2/g <filename>

それが提供する出力は次のとおりです。

version=11.21.2 

これは私の要求ではありません。

ベストアンサー1

互換性のあるsedコマンドは次のとおりです。

$ sed 's/version=[1-9]\+[0-9]*\.[0-9]\+\.[0-9]\+/version=11.21.2/' <<<'version=10.20.0.1'
version=11.21.2.1

または次のように:

sed 's/version=[1-9]\+[0-9]*\(\.[0-9]\+\)\{2\}/version=11.21.2/' <<<'version=10.20.0.1'

または次のように:

sed -E 's/version=[1-9]+[0-9]*(\.[0-9]+){2}/version=11.21.2/' <<<'version=10.20.0.1'

または、以下のように、バージョンMajor_numberが負とリリース部分のようにゼロで始まる可能性があります。

sed -E 's/version=([0-9]+\.){3}/version=11.21.2./' <<<'version=10.20.0.1'

おすすめ記事