このようなリストをソートする最も簡単な方法は何ですか

このようなリストをソートする最も簡単な方法は何ですか

特定のノードで、どのバージョンのDB2が最新バージョンであるかを確認したいと思います。 /opt/IBM/db2 ディレクトリーに DB2 ソフトウェアをインストールしました。取得したディレクトリを一覧表示すると

V10.5
V9.1
V9.5
V9.5fp10
V9.7
V9.7fp3
V9.7fp6
V9.7fp7

明らかに、10.5は現在の最新バージョンですが、最初のエントリは常に最新のバージョンではありません(たとえば、V11.0をインストールするときなど)。 ksh93で最新のエントリをチェックする比較的簡単な方法はありますか?各項目を主要/負/修正パッケージに解析できますが、これは労働集約的なようです。

ベストアンサー1

GNUツールがある場合は、次のものを使用できます。ls -v

またはPerlを使用してください。

printf "%s\n" * | perl -e '
    @sorted = map {$_->[1]}
              sort {$a->[0] <=> $b->[0] or $a->[1] cmp $b->[1]}
              map {/(\d+\.\d*)/ and [$1, $_]}
              <>;
    print $sorted[-1];
'

おすすめ記事