1

Я ищу в файлах Java какое-то вхождение фразы:

находить . -имя '* .java' | xargs grep -l 'строка'

Как изменить эту команду, чтобы печатать в оболочку все строки, содержащие совпадение?

4 ответа4

2
find . -name '*.java' | xargs grep 'string'

find . -name '*.java' | xargs grep -H 'string' # if you want filenames too
0
grep -HR "string" *.java
0

Попробуйте использовать ack, доступный на betterthangrep.com

ack string --java
0

Если ваши имена файлов содержат пробел »или« вы должны посмотреть на GNU Parallel www.gnu.org/software/parallel/

find . -name '*.java' | parallel grep 'string'

В зависимости от вашей системы это может работать быстрее, чем последовательный grep, так как он может использовать несколько процессоров. Тем не менее, часто скорость диска будет ограничивающим фактором.

Посмотрите вступительное видео для GNU Parallel: http://www.youtube.com/watch?v=OpaiGYxkSuQ

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