14

Я новичок в Linux и grep, и пытаюсь найти свой путь вокруг.

Используя find -name *.java я могу найти имена всех java-файлов в определенном каталоге. Предположим, я хочу посчитать, сколько раз foo встречается в этих файлах, как мне это сделать?

Я пробовал такие вещи, как:

grep -r "foo" *.java

и получать ответы вроде:

grep:  *.java:  No such file or directory

Есть идеи?

4 ответа4

16
find . -name '*.java' | xargs grep <your pattern here>
6

Существует инструмент, специально разработанный для этого типа потребностей: ack.

ack - это инструмент, подобный grep, предназначенный для программистов с большими деревьями разнородного исходного кода.

Также прочитайте «10 главных причин использовать ack вместо grep». на странице подтверждения .

3

Как насчет:

grep -irn --include="*\.java" somePhrase *
0

находить . -тип f -name '* .java' -print0 | xargs -0 grep -wo 'foo' | туалет

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .