Я новичок в Linux. Мне нужно искать строку «teststring» во всех * .java файлах, находящихся в / home / user1 / (включая подпапки). Как я могу сделать это в Linux с помощью команды оболочки.
Как правило, вы должны использовать -print0и -0конвейеру findв xargsработать должным образом с файлами , которые могут иметь пробелы или символы новой строки в именах:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"
Ответы:
Самый простой способ - использовать возможности GNU grep:
Если вы когда-либо использовали другой вариант Unix, в котором нет GNU grep, вот переносимый способ:
источник
grep -r teststring .
используя ack, вы просто набираете:
cd /home/user01 && ack --java teststring
источник
ack --java teststring /home/user01
Для этого извед ака подтверждени Grep его приложения убийцы в моем уме;)
Вы можете
ack some_string /in/path_y
найти some_string в path_y или прощеack some_other_string
найти some_other_sting в текущем каталоге.источник
Нашел это. Размещать это, как это может помочь кому-то
Пожалуйста, исправьте, если есть лучший способ.
источник
-print0
и-0
конвейеруfind
вxargs
работать должным образом с файлами , которые могут иметь пробелы или символы новой строки в именах:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"
источник