2015-09-04 97 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 '