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

dot*_*tgc 2 unix bash shell find systems-programming

我想在目录中找到与给定模式匹配的所有文件,例如A,并且不匹配给定模式,如B

我尝试了什么:做"ls -I B"给了我所有与模式B匹配的文件.但是我没有得到任何关于如何做我想做的线索.

fed*_*qui 8

您可以使用find . -name "pattern"然后为您不想拥有的模式添加否定条件:

find . -name "pattern_A" ! -name "pattern_B"
Run Code Online (Sandbox Code Playgroud)

让我们查找那些名称包含A但不是a的文件B:

$ ls -1
adfadAadsa
adfBasdA
Aksjdflksj
asdfBasdf
Badsf

$ find . -name "*A*" ! -name "*B*"
./Aksjdflksj
./adfadAadsa
Run Code Online (Sandbox Code Playgroud)

  • `find`的+1` -regex`选项通常对于允许复杂模式很有用. (2认同)