Bash 查找与给定模式匹配并排除给定模式的所有文件?
我想在一个目录中找到所有符合给定模式(比如a)和不符合给定模式(比如B)的文件 我所尝试的:Bash 查找与给定模式匹配并排除给定模式的所有文件?,bash,shell,unix,find,systems-programming,Bash,Shell,Unix,Find,Systems Programming,我想在一个目录中找到所有符合给定模式(比如a)和不符合给定模式(比如B)的文件 我所尝试的: 执行“ls-ib”会给我所有与模式B匹配的文件。但是我没有得到任何关于如何做我想做的事情的线索。您可以使用查找-命名为“pattern”,然后为您不想要的模式添加一个否定条件: find . -name "pattern_A" ! -name "pattern_B" 例子 让我们查找名称包含aa但不包含aB的文件: $ ls -1 adfadAadsa adfBasdA Aksjdflksj asdf
执行“ls-ib”会给我所有与模式B匹配的文件。但是我没有得到任何关于如何做我想做的事情的线索。您可以使用
查找-命名为“pattern”
,然后为您不想要的模式添加一个否定条件:
find . -name "pattern_A" ! -name "pattern_B"
例子
让我们查找名称包含aa
但不包含aB
的文件:
$ ls -1
adfadAadsa
adfBasdA
Aksjdflksj
asdfBasdf
Badsf
$ find . -name "*A*" ! -name "*B*"
./Aksjdflksj
./adfadAadsa
+1
-regex
的find
选项对于允许复杂模式非常有用。您可以添加深度控制。不搜索子目录:find-maxdepth 1-命名为“模式A”-命名为“pattern_B”
ls-l B如何为您提供与模式B
不匹配的所有文件?