我已经给出了下面的 find 命令来查找并列出文件夹中的所有文件,文件按字母顺序列出,但我想按数字模式列出所有文件。当我使用“-number”代替“-name”时,它不起作用。
find . -type f -name '*'
I100001093
I200001093
I300001093
XB00001093
I100001094
I200001094
I300001094
XB00001094
I100001095
I200001095
I300001095
XB00001095
谁能建议我按数字顺序列出的正确命令?
答案1
根据您希望如何处理I
等X
部分,您可能只需使用sort
以下命令:
find . -type f | sort -n
如果这不是您想要的排序顺序,您必须向我们提供更多详细信息(最好向我们展示您的示例中所需的输出)。
假设您想要将姓名的开头分组在一起,我们可以指定要排序的关键字段。由于 find 的输出将以./{id}
接下来的两个字符(似乎)在一批中相关开始,我们可以从行上的第 5 个字符开始排序,并指定排序键:
find . -type f | sort -n -k 1.5
-k
对于 sort,您可以指定要排序的键,这里我们按第一个字段排序,但从第 5 个字符开始,然后使用-n
数字排序
如果只想要当前目录,则可以-maxdepth
如下使用:
find . -maxdepth 1 -type f | sort -n -k 1.5
如果你希望它是便携式的:
find . -path '*/*/*' -prune -o -type f | sort -n -k 1.5