Bash真正的数字顺序

时间:2010-11-20 18:43:42

标签: bash

如何按照真实的数字顺序在目录中订购文件。

file1.txt
file2.txt
file11.txt
...

我认为它被称为:自然秩序

3 个答案:

答案 0 :(得分:23)

使用-v选项:

ls -v file*
file1
file2
file11
file12

另一个选项可能是使用sort -V,假设您的平台上有一个可用:

ls file* |sort -V

答案 1 :(得分:5)

对于此特定文件列表,从第一个字段的第五个字符开始以数字方式排序。

$ ls file*|sort -k1.5n
file1
file2
file11
file12

答案 2 :(得分:0)

如果所有文件名均为fileSOMENUMBER.txt,请尝试以下操作:

ls -1|sed 's:^[^0-9]*\([0-9]*\).*$:\1:g'|sort -n|sed 's:^\(.*\)$:file\1.txt:g'