【发布时间】:2017-08-09 04:14:10
【问题描述】:
我正在使用 Bash 浏览一些目录和文件。我正在使用示例中所示的 find 函数,我需要排除所有目录(及其包含的所有内容)和名称与某些正则表达式匹配的文件(可以是任何东西)。
while read file
do
do_stuff "${file}"
done <<< "$(find ${SOME_DIR}")
我已经尝试过使用 -not -name args 但只排除了一个特定目录,并在该目录中处理了所有内容。
顺便说一句。我在这里发现了一些类似的问题,但都非常具体。这个正则表达式可以是任何东西。
示例:正则表达式='^bbb$'
目录结构: ./测试
├── bbb
│ └── 一些文件
├── -e
├── dir2
│ └── bbb
├──一个
├── b
└── c
所以在这里我想找到排除 bbb 目录及其中的所有内容和 bbb 文件。
另一个正则表达式示例: '^.b.$' -- 所有名称中包含 b 的文件和目录
【问题讨论】:
-
请添加示例,显示示例目录结构,是否嵌套,添加示例文件名并说明需要哪些文件,哪些不需要
-
@Sundeep 添加示例
-
我并不是说你需要自己绘制结构......无论如何,所以在所示示例中,你想排除任何名为
bbb.. 的文件/目录。这很清楚......什么关于bbb目录下的some file,那也应该排除? -
是的,目录包含的所有内容,
some file
标签: bash shell ksh dash-shell