在shell或正则表达式中,"匹配除了这些字符串之外的所有字符串"的最紧凑版本是什么?

alv*_*tar 4 regex shell grep

Linux:我想列出目录及其子目录中的所有文件,除了一些字符串.为此,我一直在使用find/grep/shell globbing的组合.例如,我想列出除目录中的文件以外的所有文件

./bin
./lib
./resources
Run Code Online (Sandbox Code Playgroud)

我知道这可以按照这个问题另一个问题所示完成.但两个版本都没有一般性地解决"一切,但这种模式"的情况.

似乎使用条件来过滤结果要容易得多,但我想知道在regexp或shell扩展的globbing中是否有任何紧凑而优雅的方式来描述它.

谢谢.

fly*_*ire 7

yourcommand | egrep -v "pattern1|pattern2|pattern3"


var*_*tec 6

使用find的prune选项.

find . -path './bin' -prune -o -path './lib' -prune -o -path './resources' -prune -o «rest of your find params» 
Run Code Online (Sandbox Code Playgroud)