我使用以下命令来计算 JAVA 文件中的文本行数:
find . -name '*.java' | xargs wc -l
我如何修改find
命令参数以匹配多个文件扩展名?例如,我想对 CPP、C 和 H 文件使用上述操作。
答案1
使用-o
OR 选项。例如,这将列出.cpp
和文件.c
:.h
find . -name \*.cpp -o -name \*.c -o -name \*.h
答案2
您将需要使用 -o 选项。例如,下面的语句查找文件夹中的所有 png、jpg 和 gif 文件。
find . \( -iname \*.png -o -iname \*.jpg -o -iname \*.gif \)
我使用 -iname 选项,以便匹配不区分大小写。
答案3
$ find /path/ -name '*.cpp' -or -name '*.c' -or -name '*.h'
“-or”表示我正在寻找两个集合中的其中一个或两个。
我最近在这里写了一个使用布尔运算符进行查找的快速指南:http://jamesfishwick.com/2012/linux-find-and-boolean-operators
答案4
使用
find path/to/dir -name "*.ext1" -o -name "*.ext2"
解释
- 第一个参数是您要搜索的目录。
- 默认情况下
find
进行递归。 - 代表。因此上面的意思是搜索这个通配符或这个。如果你只有一个模式
-o
,-or
那么就不需要-o
。 - 通配符模式两侧的引号是必需的。