說我有這個目錄中:使用bash查找如何忽略所有文件擴展名(如果存在)?
master3.txt
master3
master3old
anotherFile
,我需要使用find返回:
master3.txt
master3
基本上這意味着使用find如果存在忽略文件擴展名。這個例子中的關鍵是不返回「master3old」
我想在Mac OS X上使用find
,所以我可以在結果上運行-exec cp
。
說我有這個目錄中:使用bash查找如何忽略所有文件擴展名(如果存在)?
master3.txt
master3
master3old
anotherFile
,我需要使用find返回:
master3.txt
master3
基本上這意味着使用find如果存在忽略文件擴展名。這個例子中的關鍵是不返回「master3old」
我想在Mac OS X上使用find
,所以我可以在結果上運行-exec cp
。
find $DIR -name "master3*" | grep "master3\>" | xargs
其中$DIR
是被搜索的目錄。 \>
表示單詞的結尾。
使用extglob:
shopt -s extglob
cp master3?(.*) /somewhere
它匹配master3
任選隨後.something
+1不錯。在很多情況下,bash的擴展globbing(和globstar(刪除需要調用查找。 – 2013-05-08 02:02:47
檢查發現手冊頁,看看它是否有-regex
選項
find . -regex '.*/master3\(\..*\)?'
這並不適用於我的Mac OS 10.8,雖然有一個'-E'開關指向正則表達式... – chop 2013-05-08 04:25:30
是什麼'的要求爲主設備,new'?沒有返回? – 2013-05-07 23:39:04
@Jonathan'master3-new'不能返回。 – chop 2013-05-08 02:44:52