文字列の2番目の点を削除し、文字間に0を追加します。

文字列の2番目の点を削除し、文字間に0を追加します。

変数(XYZ)にセマンティクスバージョン文字列があります。 2番目の点が消え、Zに数字が1つしかない場合は、YとZをゼロで区切って接続するか、Zに数字が2つある場合は直接接続するように変更する必要があります。

デフォルトでは、次のように進みます。

1.5.0 -> 1.500
1.5.1 -> 1.501
1.4.7 -> 1.407
1.4.10 -> 1.410
1.4.24 -> 1.424

Bashを使ってこれを行うにはどうすればよいですか?

ベストアンサー1

を含むすべてのPOSIXシェルとksh演算子をbash使用します。${var##pattern}${var%pattern}

case $string in
  (*.*.*)
     minor=${string##*.}
     case $minor in
       (? | "") minor=0$minor
     esac
     string=${string%.*}$minor
esac

特に、bash-3.2+(およびbash 3.1互換性が有効になっていない場合)の場合は、次のこともできます。

if [[ $string =~ ^(.*\..*)\.([^.]*)([^.])$ ]]; then
  string=${BASH_REMATCH[1]}${BASH_REMATCH[2]:-0}${BASH_REMATCH[3]}
fi

おすすめ記事