今天在终端下使用 ls 命令的时候,发现没办法直接满足按照阿拉伯数字顺序排列的需求。
比如说有如下几个文件:
1_apple.txt
12_banana.txt
3_orange.txt
31_mango.txt
这就是 ls 命令默认的排序方式。
而我需要的却是:
1_apple.txt
3_orange.txt
12_banana.txt
31_mango.txt
STFW 发现可以通过管道符和 sort 命令配合来实现。
ls | sort -k1 -n
其中,-k1 表示按照第一个区域进行排序,-n 表示按照数值排序。
只用 ls 命令的时候,-k 参数可以省略,但如果使用 ls -al 命令的话,需要排序的就是第九个区域,就应该是 -k9 了。
另外,-t 参数可以指定用来分隔区域的字符。当数字在文件名后面作为版本号的时候,可能会用上这个参数。