find . -name '*.java' | xargs grep 'string' find . -name '*.java' | xargs grep -H 'string' # if you want filenames too
печать совпадающих строк при поиске всех файлов в каталоге
458
John Kube
Я ищу в файлах Java какое-то вхождение фразы:
находить . -имя '* .java' | xargs grep -l 'строка'
Как изменить эту команду, чтобы печатать в оболочку все строки, содержащие совпадение?
Попробуйте использовать `ack`: http://betterthangrep.com/
Dennis Williamson 14 лет назад
0
4 ответа на вопрос
- Популярные
- Новые
- С комментариями
- Активные
2
Steve McKay
Или для обработки пробелов в именах файлов: найти. -name '* .java' -print0 | xargs -0 grep 'string'
CoverosGene 14 лет назад
0
0
user31894
grep -HR "string" *.java
0
Andy Lester
Попробуйте использовать ack, доступный на betterthangrep.com
ack string --java
0
Ole Tange
Если ваши имена файлов содержат пробел, 'или' вы должны посмотреть на GNU Parallel www.gnu.org/software/parallel/
find . -name '*.java' | parallel grep 'string'
В зависимости от вашей системы это может работать быстрее, чем последовательный grep, так как он может использовать несколько процессоров. Тем не менее, часто скорость диска будет ограничивающим фактором.
Посмотрите вступительное видео для GNU Parallel: http://www.youtube.com/watch?v=OpaiGYxkSuQ
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4