5

次のディレクトリ ツリーがあるとします。

foo/
   +bar/
   |   +VIEW/
   |   |    +other/
   |   |          +file.groovy
   |   |    +file2.groovy
   |   |    +file.txt
   |   +file3.groovy
   +xyz/
       +VIEW/
            +file4.groovy
       +file5.groovy

そして、 VIEWまたはVIEWの下にあるディレクトリ(file.groovy、file2.groovy、file4.groovy)methodにあるgroovyファイルのみをgrepしたいと思います。

--include=.*\/VIEW\/.*\.groovy私が知る限り、何かの正規表現、次に/文字、次にVIEWという単語、次に/文字、そして何か、そして.groovyという単語を使用してそうしようとしています

しかし、それは実際には何も返しません。

includeオプションを使用してこれを行う方法はありませんか?

4

3 に答える 3

5

UNIX の哲学から:

1 つのことをうまく行うプログラムを作成します。連携するプログラムを作成します。

再帰的なディレクトリ検索のための GNU 拡張は好きではありません。このツールfindははるかに優れた仕事をし、より多くのオプションを備えたよりクリーンな構文を持ち、哲学を壊しません!

$ find foo/*/VIEW -name "*.groovy" -exec grep method {} \;   
于 2013-08-13T10:40:10.230 に答える
1

オプションでディレクトリ パスを指定する必要はありませんinclude=。再帰的な grep の最後の引数としてパスを指定するだけです。

したがって、次のように簡単に実行できます。

grep -R 'method' --include=*.groovy foo/bar/VIEW/
于 2013-08-13T10:45:55.997 に答える