可以使用两个OR'd -name值运行命令吗?

时间:2012-11-01 15:17:33

标签: bash

我需要使用Linux find命令,以便我可以搜索一个名称或另一个名称。

我需要一种方法来查找从MS Windows应用程序传输的两个文件。一个是使用.csv扩展名生成的,另一个是.CSV扩展名。它们在文件名中也有空格,我知道如何处理。

但是,我不太确定如何将.CSV添加到以下-name \*.csv命令的find参数中。

-name参数中可以将两个值设为“或”吗?

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

4 个答案:

答案 0 :(得分:3)

此命令应该找到两种类型的文件。请注意括号后的转义字符和空格。

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

答案 1 :(得分:3)

目前尚不清楚,为什么不使用-iname '*-csv'选项?

答案 2 :(得分:1)

将脚本的查找部分更改为?

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

答案 3 :(得分:1)

如果你只是匹配扩展名.csv和.CSV,你也可以使用globbing代替find,即。

for fnam in *.csv *.CSV; do
    ...