按未填充的前导数字对文件进行排序

按未填充的前导数字对文件进行排序

我有以下文件

$ 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和字段分隔符,它也会对你有用:-tsort

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

相关内容