打印到标准输出与特定模式匹配的所有文件夹



我正在尝试查找所有命名为 3 个数字 (###) 的文件夹,并且有一个命名为 2 个数字 (##) 的子目录。

我尝试过:

我解决这个问题的方法是使用 find 命令。我会在哪里寻找这样的模式:

### (folder name)
  -> ## (subdirectory name)

由于深度必须是两个,所以我使用了-maxdepth 2

为了查找命名模式,我使用 '[0-9][0-9][0-9]' 来获取主文件夹名称,并使用 '[0-9][0-9]' 来获取子目录的名称。

把这些放在一起,我想出了这个:

#!/bin/sh
for f in $(find . -maxdepth 2 -name '[0-9][0-9][0-9]' -type d); do
    echo $f
done

遗漏的部分是我似乎无法弄清楚的部分。如何将子目录的命名模式添加到 find 命令中,以便它找到与模式 ### 作为主文件夹名称和 ## 作为子目录名称匹配的所有文件夹

如果有人能给我一个关于这个问题的提示,那将不胜感激。

你可以直接使用 glob 执行此操作,因为它们可以跨越目录:

echo [0-9][0-9][0-9]/[0-9][0-9]/

最新更新