我有以下列出的目录
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
。