バージョンの週、負、リリース番号を置き換えるために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'