![grep -r(或 -R)不搜索子文件夹内的内容](https://linux22.com/image/1552637/grep%20-r%EF%BC%88%E6%88%96%20-R%EF%BC%89%E4%B8%8D%E6%90%9C%E7%B4%A2%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E5%86%85%E7%9A%84%E5%86%85%E5%AE%B9.png)
我已经很久没有使用 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
来获取有关其他选项的信息。