Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 查找与给定模式匹配并排除给定模式的所有文件?_Bash_Shell_Unix_Find_Systems Programming - Fatal编程技术网

Bash 查找与给定模式匹配并排除给定模式的所有文件?

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

我想在一个目录中找到所有符合给定模式(比如a)和不符合给定模式(比如B)的文件

我所尝试的:
执行“ls-ib”会给我所有与模式B匹配的文件。但是我没有得到任何关于如何做我想做的事情的线索。

您可以使用
查找-命名为“pattern”
,然后为您不想要的模式添加一个否定条件:

find . -name "pattern_A" ! -name "pattern_B"
例子 让我们查找名称包含a
a
但不包含a
B
的文件:

$ 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
不匹配的所有文件?