我在一个目录中。有两个子目录,我想按数字顺序列出其中的文件。在第一个目录中,文件名为 01、02、03...,它们排序良好。但在第二个目录中,文件被命名为 1、2、3,因此 10 排在 1 之前。键控似乎不起作用,因为我是文件后面的目录,因此脚本如下:
find "$PWD" -type f|sort -n -t _ -k 1
不起作用。如何按真实的数字顺序列出?
最佳答案
排序手册:Sort numerically: the number begins each line ...
我怀疑 find 的输出是否会是这样。因此,您应该编写一个脚本,从文件名中删除前导字符,然后调用排序。
例如find "$WORD" -type f | cut -d / -f 2-
将致力于对第一级目录中的文件名进行数字排序,但其余的不会按数字排序。
您必须根据您的需要编写脚本,但如果您要查找的内容位于单个目录中,则上面的行就可以了。
关于Bash - 数字排序在 1 秒之前排序 10 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955843/