2015-09-04 159 views
1

的某些列表中的一个衬套壳脚本所以说我有以下命令:查找路径中的所有文件,除了文件

find text except some files with name [a, b,c...] 

我能做到的最好的是:

`find -E PATH -type f -name “*.*” -and ! -name ".*" -not -path “FILE1” -and ! -name ".*" -not -path “FILE2”` 

但有没有一种方法,我可以做到这一点不重复-and ! -name ".*" -not -path “FILE”或有没有办法我可以得到FILE1FILE2等在列表中?

道歉,如果这太简单了,我完全没有经验的正则表达式。

+0

如果他们共享一个模式,你可以使用正则表达式 – fedorqui

回答

3

您可以使用find-regex此:

find -E PATH -not -regex '.*/(\..*|FILE1|FILE2|FILE3)' 
1

根据不同的需要找到

find -E PATH -type f -name “*.*” -print | grep -E -v 'FILE1|FILE2'

后与排斥的大名单(最好的目的),其中Exclusion.File每行含有每个排除物

find -E PATH -type f -name “*.*” -print | grep -E -v -f Exclusion.File '