次: , 前: Sorting the output, 上: ls invocation


10.1.4 バージョンの並べ替えの詳細

バージョンの並べ替えは,ファイル名が索引やバージョン番号を含むことが多 いという事実を考慮にいれています.標準的な並べ替え機能は,一文字づつを 基本に比較するため,通常,人々が期待する順序を生成しません.バージョン の並べ替えは,この問題を提出し,その名前に索引/バージョン番号を伴うファ イルを多く含むディレクトリを眺めるとき特に役に立ちます.

           > ls -1            > ls -1v
           foo.zml-1.gz       foo.zml-1.gz
           foo.zml-100.gz     foo.zml-2.gz
           foo.zml-12.gz      foo.zml-6.gz
           foo.zml-13.gz      foo.zml-12.gz
           foo.zml-2.gz       foo.zml-13.gz
           foo.zml-25.gz      foo.zml-25.gz
           foo.zml-6.gz       foo.zml-100.gz

数字の部分にゼロが前置されていても,分数として考慮されることに注意して 下さい.

           > ls -1            > ls -1v
           abc-1.007.tgz      abc-1.007.tgz
           abc-1.012b.tgz     abc-1.01a.tgz
           abc-1.01a.tgz      abc-1.012b.tgz

この機能は,strverscmp関数を使用して実装しています. See String/Array Comparison.実装を決定した結果,ls -vはロカールカテゴリの LC_COLLATEを使用しなくなりました.結果として,数字以外の接頭辞は, LC_COLLATECに設定されているかのように並べ替えられます.