在已排序的文件夹中按顺序查找文件

在已排序的文件夹中按顺序查找文件

我有以下列出的目录

01  02   03_rev  04_N  .....  154  155

我想find在按上述列出的排序文件夹中(文件夹的数字顺序)查找文件,我该如何修改下面的查找命令?

for f in $(find . -name 'log_*.log'); do
    ....
done

谢谢

答案1

你不需要find,你可以只使用 shell 通配符,你将获得按自然数字顺序排序的文件:

for f in [0-9]*; do echo "$f"; ## Do stuffs; done

例子:

$ for f in [0-9]*; do echo "$f"; done
01
02
03_rev
04_N
154
155

根据评论回答:

如果您想在这些目录中递归搜索文件,然后读取找到的文件,请执行以下操作:

您不应该单独循环遍历每个目录,而应该转到它们的父目录并find仅遍历这些目录(使用通配符),然后搜索文件:

find /parent/[0-9]* -type f -name 'file.txt'

要读取文件的内容:

find /parent/[0-9]* -type f -name 'file.txt' -exec cat {} +

假设这些目录的父目录是/parent,而您要搜索的文件是file.txt

相关内容