2012-11-01 48 views
-1

我需要使用Linux find命令,以便我可以搜索一個名稱或另一個名稱。可以找到命令運行兩個OR'd名稱值?

我需要一種方法來查找從MS Windows應用程序傳輸的兩個文件。一個是以.csv擴展名生成的,另一個是.CSV擴展名。它們在文件名中也有空格,我知道該如何處理。

但是,我不太清楚如何將.CSV添加到以下find命令的-name \*.csv參數中。

可以在-name參數中對兩個值進行OR運算嗎?

for fnam in `find . -maxdepth 1 -type f -name \*.csv -exec echo "{}" \;` 
do 
. 
. 
. 

回答

3

該命令應該找到兩種類型的文件。請注意括號後的轉義字符和空格。

find . \(-name "*.cvs" -o -name "*.CVS" \)

+0

哪裏是在文檔-o?我已經看過男人和網絡。 – octopusgrabbus

+0

@octopusgrabbus,它位於'man find'中的'OPERATORS'部分下方。 – doubleDown

1

更改腳本的找兼職是這個?

find . -maxdepth 1 -type f \(-name \*.csv -o -name \*.CSV \) -exec echo "{}" \; 
+1

嘗試過並且沒有工作。 – octopusgrabbus

3

目前還不清楚,你爲什麼不使用-iname '*-csv'選項?

+0

我做了,它沒有工作。 – octopusgrabbus

+0

這不是告訴它如何不工作。 –

1

如果你是剛剛匹配擴展.csv和.CSV,你還不如用通配符代替find,即

for fnam in *.csv *.CSV; do 
    ... 
相關問題