![按未填充的前导数字对文件进行排序](https://linux22.com/image/1065445/%E6%8C%89%E6%9C%AA%E5%A1%AB%E5%85%85%E7%9A%84%E5%89%8D%E5%AF%BC%E6%95%B0%E5%AD%97%E5%AF%B9%E6%96%87%E4%BB%B6%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F.png)
我有以下文件
$ ls *.md | sort -n
1.pythonPrimer.md
10.mapsHashTablesAndSkipLists.md
11.searchTree.md
12.sortAndSelection.md
13.textProcessing.md
14.graphAlgorithms.md
15.memoryManagementAndBTrees.md
16.Appendix.md
2.Object Oriented Programming.md
3.algorithmsAnalysis.md
4.recursion.md
5.arrayBasedSequence.md
6.stack.md
7.linkedList.md
8.tree.md
9.priorityQueues.md
我想按前导数字 1、2、3、4.... 的顺序对它们进行排序,
我怎样才能完成它?
答案1
对我来说也行得通。我认为如果你为以下项定义一个键-k
和字段分隔符,它也会对你有用:-t
sort
ls *.md | sort -n -t. -k1
或者使用 find
find * -name "*.md" | sort -n -t. -k1
您应该避免ls
在命令行中使用此类命令。出现问题的原因有很多。请参阅此链接(特别是@Byte Commander 评论中的链接)。
答案2
对我来说很管用。也许你需要关闭语言环境?
ls *.md | LC_ALL=C sort -n
或者,使用以下版本排序ls
:
ls -v *.md