grep -r (или -R) не ищет внутри подпапок

473
KansaiRobot

Прошло некоторое время с тех пор, как я не использую Linux, вместо этого использую Windows. В Windows всякий раз, когда я хочу найти строку в файлах и файлах внутри подпапок, которые я делаю (например, для файлов CS)

findstr /s /i /n "Thepattern" *.cs

В последнее время я узнал, что вы можете использовать grep в MINGW64, который устанавливается при использовании Git. Так я попробовал

grep --color -n -r "Thepattern" *.cs

Но даже если я поставил -rпоиск не включает в себя подкаталоги.

Что я делаю не так с grep? а как должно быть?

РЕДАКТИРОВАТЬ: Анаксунаман дал мне правильный ответ:

grep --color -n -r --include=*.cs "Thepattern"

и еще несколько вариантов :) Спасибо!

0
Я предлагаю удалить `* .cs`. Cyrus 6 лет назад 0
но я хочу искать только по файлам cs ... KansaiRobot 6 лет назад 0

1 ответ на вопрос

0
Anaksunaman

Я обнаружил, что вы можете использовать grep в MINGW64, который устанавливается при использовании Git.

Я предполагаю, что вы имеете в виду Git Bash.

Что я делаю не так с grep? И как это должно быть?

Вы должны попробовать это:

 grep --color -n -r --include=*.cs "ThePattern" 

--include=должен прийти после -r. Это ограничит результаты файлами, которые заканчиваются на «.cs». Вы также можете указать каталог, если хотите, например:

grep --color -n -r --include=*.cs "ThePattern" ~/some/directory/'with spaces' 

В этом случае ~относится к вашей папке профиля пользователя в Windows.

Кроме того, предполагая, что «ThePattern» является строковым литералом, вам может потребоваться включить -i, чтобы сделать вещи нечувствительными к регистру, например:

 grep --color -n -i -r --include=*.cs "ThePattern" 

В противном случае «ThePattern» отличается от «Thepattern», и вы можете не получить никаких результатов.

Обратите внимание, что вы всегда можете использовать grep --helpдля получения информации о дополнительных опциях.

Спасибо. Ваш ответ дал ожидаемый результат. (Я проверил документацию grep, но, очевидно, не был достаточно ясен для меня) KansaiRobot 6 лет назад 0
Рад, что у тебя все работает. Документация не всегда самая ясная, нет. знак равно Anaksunaman 6 лет назад 0

Похожие вопросы