web-dev-qa-db-ja.com

複数のファイル拡張子に「find」を使用する

Javaファイル内のテキストの行をカウントするために次のコマンドを使用しています:

find . -name '*.Java' | xargs wc -l

複数のファイル拡張子に一致するようにfindコマンドパラメーターを変更するにはどうすればよいですか?たとえば、CPP、C、およびHファイルに対して上記の操作を使用します。

16
Xavier

ORには-oオプションを使用します。たとえば、これは.cpp.c、および.hファイルをリストします。

find . -name \*.cpp -o -name \*.c -o -name \*.h
16
JOTN

-oオプションを使用する必要があります。たとえば、次のステートメントは、フォルダー内のすべてのpng、jpg、gifファイルを検索します。

find . \( -iname \*.png -o -iname \*.jpg -o -iname \*.gif \)

-inameオプションを使用して、一致で大文字と小文字が区別されないようにします。

2
smokinguns
$ find /path/ -name '*.cpp' -or -name '*.c' -or -name '*.h'

「-or」は、2つのセットのどちらかまたは両方を探していると言います。

私は最近、ブール演算子でfindを使用するためのクイックガイドをここに書きました: http://jamesfishwick.com/2012/linux-find-and-boolean-operators

2
two7s_clash

使用

find path/to/dir -name "*.ext1" -o -name "*.ext2"

説明

  1. 最初のパラメータは、検索するディレクトリです。
  2. デフォルトでは、findは再帰を行います。
  3. -o を意味する -or。したがって、上記はこのワイルドカードを検索することを意味しますORこれです。パターンが1つしかない場合は、-o
  4. ワイルドカードパターンを囲む引用符は必須です。
0
Shital Shah