テキストと数字の混合入力がある場合(前に0がつかない)、「自然な」順序で並べ替えるにはどうすればよいですか?たとえば、次の入力(ホスト名)が与えられた場合:
whatever-1.example.org
whatever-10.example.org
whatever-11.example.org
whatever-12.example.org
whatever-13.example.org
whatever-2.example.org
whatever-3.example.org
whatever-4.example.org
whatever-5.example.org
whatever-6.example.org
whatever-7.example.org
whatever-8.example.org
whatever-9.example.org
私は次のような出力が欲しい。
whatever-1.example.org
whatever-2.example.org
whatever-3.example.org
whatever-4.example.org
whatever-5.example.org
whatever-6.example.org
whatever-7.example.org
whatever-8.example.org
whatever-9.example.org
whatever-10.example.org
whatever-11.example.org
whatever-12.example.org
whatever-13.example.org
編集する
「何でも」に加えて
thingaroo-#.example.org
.
:
blargh-#.example.org
.
:
...etc...
ありがとうございます!
ベストアンサー1
GNU coreutils ≥ 7.0 の場合、バージョン順序付けを使用できます。一連の数字が 10 進整数値でソートされる点を除いて、これは辞書式の順序です。
sort -V