根据数字模式在文件夹中搜索文件

根据数字模式在文件夹中搜索文件

我已经给出了下面的 find 命令来查找并列出文件夹中的所有文件,文件按字母顺序列出,但我想按数字模式列出所有文件。当我使用“-number”代替“-name”时,它不起作用。

find . -type f -name '*'
I100001093
I200001093
I300001093
XB00001093
I100001094
I200001094
I300001094
XB00001094
I100001095
I200001095
I300001095
XB00001095

谁能建议我按数字顺序列出的正确命令?

答案1

根据您希望如何处理IX部分,您可能只需使用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

相关内容