我有以下文件
$ 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