最大数を見つけるシェルコマンドです。ところが問題は小数点以下2桁が最高値とみなされないという点だ。

最大数を見つけるシェルコマンドです。ところが問題は小数点以下2桁が最高値とみなされないという点だ。

シェルスクリプトを使用して、変数に記載されている値の最大数を見つけます。

例えば

VAR="2011.2/2009.1/2011.10"

シェルスクリプトは2011.10を3つのうち最も高いものとして識別し、出力は2011.10でなければなりません。

VAR="2011.10/2011.1" の場合、出力は 2011.10 でなければなりません。

VAR="2010.1/2011.2" の場合、出力は 2011.2 でなければなりません。

ここでの問題は、小数点以下の2桁が小数点以下の1桁より小さいと見なされることです。

答え1

あなたが求めるものはもっと似ていますバージョン数値比較。

tr+sort+head解決策:

v="2011.2/2009.1/2011.10"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.10

テストケース:

v="2011.1/2011.2"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.2

v="2011.1/2011.2/2011.101"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.101

関連情報