2

Прошло некоторое время с тех пор, как я не использую 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"

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

1 ответ1

1

Я обнаружил, что вы можете использовать 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 для получения информации о дополнительных опциях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .