每当我将 grep 与gnuwin32的递归选项一起使用-r并包含要搜索的文件的 glob 模式(例如*.c)时,不会搜索子目录中的文件。我正在使用来自 gnuwin32 的最新 grep。
具体来说,我在一个目录中的所有 c 源文件中搜索字符串“iflag”。
grep -r iflag *.c
Run Code Online (Sandbox Code Playgroud)
我不确定为什么递归标志不起作用,但这里有一个对我有用的解决方法。 该-r选项接受一个参数:要搜索的目录。要搜索当前目录,请为其提供参数.。例如
grep regexp-to-find -r . --include=*.c
这实际上是 grep 的预期行为,与在 Windows 上运行它无关。该-r选项采用目录参数。查看 HairOfTheDog 的答案以了解原因。
grep的的-r选项(这是一样的-R,--recursive,-d recurse和--directories=recurse选项)将一个目录名(或模式)作为其参数。您尝试执行的命令应该被解释为“从当前工作目录开始递归所有匹配模式 *.c 的目录。在每个目录中搜索字符串 iflag 的所有文件。”
| 归档时间: |
|
| 查看次数: |
3411 次 |
| 最近记录: |