grep -r(或 -R)不搜索子文件夹内的内容

grep -r(或 -R)不搜索子文件夹内的内容

我已经很久没有使用 Linux 了,而是使用 Windows。在 Windows 中,每当我想在文件和子文件夹内的文件中搜索字符串时,我都会这样做(例如搜索 cs 文件)

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

最近,我发现你可以在使用 Git 时安装的 MINGW64 中使用 grep。所以我尝试了

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

但即使我把-r搜索不包括子目录。

我对 grep 做错了什么?应该怎么办?

编辑:Anaksunaman 为我提供了正确答案:

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

以及其他几个选项:)谢谢!

答案1

我发现你可以在使用 Git 时安装的 MINGW64 中使用 grep。

我假设您指的是 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来获取有关其他选项的信息。

相关内容