对字母数字文件名使用排序

Naf*_*Kay 3 sort

我正在对find查找当前目录中所有文件的命令的结果进行排序:

find . -maxdepth 1 -type f -iname "*.flac" | sort
Run Code Online (Sandbox Code Playgroud)

我期待的是这样的列表:

./Track 1.flac
./Track 2.flac
./Track 3.flac
...
./Track 9.flac
./Track 10.flac
./Track 11.flac
Run Code Online (Sandbox Code Playgroud)

我得到的是这样的列表:

./Track 10.flac
./Track 11.flac
./Track 1.flac
./Track 2.flac
./Track 3.flac
...
./Track 9.flac
Run Code Online (Sandbox Code Playgroud)

是否有一个选项可以sort将它们按字母数字升序排列,以便正确评估数字?

Lev*_*von 10

尝试将-n-k2命令行 选项传递给sort. IE,

find . -maxdepth 1 -type f -iname "*.flac" | sort -n -k2
Run Code Online (Sandbox Code Playgroud)

当我将未排序的文件名放入文件“data.txt”并运行以下命令时:

sort -k2 -n data.txt
Run Code Online (Sandbox Code Playgroud)

我得到这个作为输出:

./Track 1.flac
./Track 2.flac
./Track 3.flac
./Track 9.flac
./Track 10.flac
./Track 11.flac
Run Code Online (Sandbox Code Playgroud)

选项说明:

-n (numeric sort) compare according to string numerical value
-k2 means sort on the 2nd field (and to the end of the line), 
    you could just restrict it to the second field with -k2,2
Run Code Online (Sandbox Code Playgroud)

你没有问这个,我上面也没有用过,但总有一天它可能会派上用场。

-r reverse sort order 
Run Code Online (Sandbox Code Playgroud)

手册页sort

请参阅我关于根据不同字段排序的SO 相关帖子按第三列排序,保留第一列和第二列完整(在 linux 中),它解释了有关排序命令的更多信息。