我在Windows 11机器上通过cmd窗口提交了以下命令:
grep -r --include=*.c "return"
grep -r --include="*.c" return
grep --recursive --include=*.c return
这些命令均未返回。SuperUser 中有一个非常类似的问题,它显示了据称有效的第一个命令,只是搜索模式不同。
如果我在源文件正上方的目录中提交以下命令,您会看到发生错误:
C:> grep -r --include=*.c "return" *.c
grep: *.c: No such file or directory
我也尝试了其他变体。grep 命令似乎不会递归遍历目录。
语法有问题吗?我发现了错误吗?我需要它正常工作。
答案1
我最终找到了问题的答案。需要的是一个开始的地方,我不明智地认为它会是你所在的目录。因此,命令需要如下所示:
grep -r --include=*.c "return" .
或者
grep -r --include=*.c "return" C:\Users\MyHomeDirectory\SourceFiles
据我所知,没有任何东西说要将起始位置放在行尾。如果它在“grep --help”生成的文本中,我找不到它。
我希望将来某一天有人会发现这很有用。