获取包含按字母/数字顺序排列的特定文件类型的目录的文件路径

获取包含按字母/数字顺序排列的特定文件类型的目录的文件路径

我有一个目录,其中包含 800 个名为 的子目录disp-001 ... disp-800。所有这些子目录都需要包含一个特定的文件,例如stdout.其中之一不包含该文件,我需要找到没有该文件的文件夹。如果我尝试

find . -name "stdout"

它返回我所有文件的值,但它们不是从 001 到 800 排序的,这使我很难识别该文件夹。有没有一种方法可以对输出进行排序,使其按数字顺序排列?

笔记:

我将不编辑这个问题来展示(至少对我自己)一个经典XY问题。我所需要的只是识别不包含特定文件的目录,但这个问题是关于该问题的特定尝试解决方案。提供了查找不包含特定文件的目录的解决方案这里

答案1

就我个人而言,我会使用 shell 来代替:

$ for dir in disp-{001..800}; do [ -f "$dir"/stdout ] || echo "$dir"; done
disp-389

在我的测试中,disp-389这是唯一缺少该文件的目录,因此也是唯一打印的目录。

如果您的 shell 不支持这种形式的大括号扩展,只需使用for dir in disp*or(假设您要检查所有目录)for dir in */

相关内容