Я ищу в файлах Java какое-то вхождение фразы:
находить . -имя '* .java' | xargs grep -l 'строка'
Как изменить эту команду, чтобы печатать в оболочку все строки, содержащие совпадение?
find . -name '*.java' | xargs grep 'string'
find . -name '*.java' | xargs grep -H 'string' # if you want filenames too
grep -HR "string" *.java
Попробуйте использовать ack, доступный на betterthangrep.com
ack string --java
Если ваши имена файлов содержат пробел »или« вы должны посмотреть на GNU Parallel www.gnu.org/software/parallel/
find . -name '*.java' | parallel grep 'string'
В зависимости от вашей системы это может работать быстрее, чем последовательный grep, так как он может использовать несколько процессоров. Тем не менее, часто скорость диска будет ограничивающим фактором.
Посмотрите вступительное видео для GNU Parallel: http://www.youtube.com/watch?v=OpaiGYxkSuQ