web-dev-qa-db-ja.com

ディレクトリ内の特定のファイルを再帰的にgrepするにはどうすればよいですか?

私はLinuxとgrepに不慣れで、自分の道を見つけようとしています。

find -name *.Javaを使用することで、特定のディレクトリ内のすべてのJavaファイルの名前を見つけることができます。fooが発生した回数をカウントしたいとします。これらのファイルで、どうすればよいですか?

私は次のようなことを試みてきました:

grep -r "foo" *.Java

次のような応答を取得します。

grep:  *.Java:  No such file or directory

何か案は?

14
Eric Wilson
find . -name '*.Java' | xargs grep <your pattern here>
16
arathorn

このタイプのニーズのために特別に設計されたツールがあります: ack

ackはgrepのようなツールで、異種のソースコードの大きなツリーを持つプログラマーを対象としています。

ack ページの「grepの代わりにackを使用する10の理由」もお読みください。

6
user4126

どうですか:

grep -irn --include="*\.Java" somePhrase *
3
Manatok

見つける。 -type f -name '* .Java' -print0 | xargs -0 grep -wo'foo '| wc -l

0
wudeng