Find
按模式查找文件,但忽略其他具有相似模式的文件
我有一個目錄,其中包含子目錄,我需要獲取其中一些子目錄的名稱,但有一個與我想忽略的模式相似的目錄。
例如,如果子目錄列表是這樣的:
Name_One Not_needed1 Name_Two Name_Three Not_needed2 Name_Zero
我想將子目錄 Name_One、Name_Two 和 Name_Three 的名稱儲存在變數中,但我想忽略 Name_0。
此外,每個項目的命名都會發生變化,但始終遵循 Name_Number 的模式,而 Name_Zero 始終是需要排除的模式。
我正在使用 Mac 作業系統。
嘗試:
find . -type d -name 'Name_*' ! -name 'Name_Zero'
對於目錄名稱,
Name_[digit]
僅排除目錄Name_0
。find . -type d ! -name 'Name_0' -regex './Name_[0-9]*'
如果您也有子目錄,請使用:
find . -type d ! -name 'Name_0' -regex '.*/Name_[0-9]*'
上面的正則表達式匹配與模式匹配的目錄名稱
Name_[zero-or-more-digits]
,為了避免匹配 onName_
,請'.*/Name_[0-9][0-9]*'
改用。