私の文字列(IPアドレス)には次のパターンがあります。
123.444.888.235
0
ドットの後の最後の数字を次のように変更したいと思います。
123.444.888.0
bash
シェルスクリプトや他の言語を使用してこれを行うにはどうすればよいですか?
ベストアンサー1
POSIXシェルでは:
var=123.444.888.235
new_var="${var%.*}.0"
${var%pattern}
ksh
は1980年代に導入された演算子で、sh
POSIXで標準言語に標準化されており、現在はbash
。
${var%pattern}
$var
最短一致文字列の内容をストリップに拡張模様終わりを離れる(または$var
そのように模様不一致)。だから${var%.*}
(どこ.*
?模様つまり、ドットの後に任意の数の文字が続く場合)は、右端のポイントを超えて$var
拡張されません.
。対照的${var%%.*}
に、最長削除されたパターンに一致する文字列は、左端以降の内容が
$var
ないように拡張されます。.