Ответ 1
Использовать рекурсивный grep:
grep -r "String" --include=*.java .
Я хочу использовать grep
, чтобы найти строки, содержащие String
во всех java файлах в текущем каталоге.
Я пробовал:
grep -r "String" **/*.java
Но это не работает:
grep : **/*.java: no such file or directory
Как это записать?
UPDATE
Я нахожусь в окнах, используя grep
, предоставляемый unxUtils
, который не поддерживает параметр --include
. Есть ли другой способ?
Использовать рекурсивный grep:
grep -r "String" --include=*.java .
Я думаю, unxUtils
предоставляет утилиту find
. Поэтому вы можете попробовать:
find . -name "*.java" -exec grep "String" {} \;
или
find . -name "*.java" -exec grep "String" {} \+
Первая версия выполнит одну команду grep
для каждого найденного файла. Последняя версия будет выполнять только как можно больше команд grep
, но не каждая версия find
поддерживает аргумент +
.