次のように解析されたバージョンタグのリストがあるとします。
0.2
0.1
0.10
0.9
私が使用するとsort
私は得ます(正しいですか、これを対照の順序と呼びますか?)
0.1
0.10
0.2
0.9
私が期待する数字(論理的)順序が欲しい場合
0.1
0.2
0.9
0.10
たとえば、これはパッケージのバージョンを解析すると同時に、自動化されたインストールプロセスのために最新バージョンを入手したいときに頻繁に遭遇するシナリオです。
この目標をどのように達成できますか?
答え1
GNUソートには、バージョン番号ソートにのみ使用される-V
/オプションがあります。--version-sort
目的の出力を正確に生成し、複数の部分からなるバージョン番号も処理します0.10.123
。
この特定のデータセットの場合は、sort -t. -k1,1n -k2,2n
フィールド区切り文字sort
として使用し、最初と.
2番目のフィールドに基づいて数値で並べ替えることもできます。 (-k1n
最初のフィールドで始まる行の残りの部分が使用されるため、結果は異なります。)