【发布时间】:2014-02-28 15:08:42
【问题描述】:
我想在目录中查找与给定模式匹配的所有文件,比如 A,而不匹配给定模式,比如 B
我尝试过的: 执行“ls -I B”会给我所有与模式 B 匹配的文件。但我没有得到任何关于如何做我想做的事情的线索。
【问题讨论】:
-
ls -l B如何给你所有与B模式不匹配的文件?
标签: bash shell unix find systems-programming
我想在目录中查找与给定模式匹配的所有文件,比如 A,而不匹配给定模式,比如 B
我尝试过的: 执行“ls -I B”会给我所有与模式 B 匹配的文件。但我没有得到任何关于如何做我想做的事情的线索。
【问题讨论】:
ls -l B如何给你所有与B模式不匹配的文件?
标签: bash shell unix find systems-programming
您可以使用find . -name "pattern",然后为您不想拥有的模式添加否定条件:
find . -name "pattern_A" ! -name "pattern_B"
让我们查找名称中包含A 但不包含B 的文件:
$ ls -1
adfadAadsa
adfBasdA
Aksjdflksj
asdfBasdf
Badsf
$ find . -name "*A*" ! -name "*B*"
./Aksjdflksj
./adfadAadsa
【讨论】:
-regex 的find 选项对于允许复杂模式通常很有用。
find . -maxdepth 1 -name "pattern_A" ! -name "pattern_B"