为什么cygWin grep会给出错误?

为什么cygWin grep会给出错误?,grep,cygwin,Grep,Cygwin,我试图在我所有的C#文件中递归搜索下面的字符串。为什么我会犯这个错误?我花了很长时间安装CygWin,而且我一直在使用Unix,但这不像Unix的grep。值得注意的是,我在WIndows7上使用Cygwin。谢谢 grep -R 'new IIntf' *.* grep: *.*: No such file or directory grep -R 'new IIntf' *.cs grep: *.cs: No such file or directory 当前目录中可能没有与*.*.匹配

我试图在我所有的C#文件中递归搜索下面的字符串。为什么我会犯这个错误?我花了很长时间安装CygWin,而且我一直在使用Unix,但这不像Unix的grep。值得注意的是,我在WIndows7上使用Cygwin。谢谢

grep -R 'new IIntf' *.*
grep: *.*: No such file or directory

grep -R 'new IIntf' *.cs
grep: *.cs: No such file or directory

当前目录中可能没有与
*.*.
匹配的文件。您的意思可能是
grep-R'new IIntf'。

您是在Windows命令提示符下调用grep吗?这可以解释一些事情,因为cmd不扩展(glob)通配符,而unixshell可以扩展通配符。我应该从哪里调用它?当我点击Cygwin图标时,它会将我带到一个类似Windows命令提示符的屏幕。我别无选择。你确定这是一个cmd窗口,还是bash窗口?如果提示符类似于c:\>它是cmd,如果提示符中有$,它应该是bash。在cmd中,cygwin grep不起作用,在bash中它应该起作用。
ls*
是否产生预期的输出?那么我如何指定我的文件扩展名?如果你想混合递归子目录搜索和文件名匹配,你可能需要类似于
find的东西-名称“*.cs”| grep'new IIntf'
。现在你知道该找什么了,你也许可以在谷歌上搜索其他解释。是一个链接。当然,我从链接页面的错误示例中复制了该命令。尝试
查找-名称“*.cs”-exec grep'new IIntf'{}\
而不是
-exec
您可以像这样使用
xargs
<代码>查找-名称“*.cs”| xargs grep“新IIntf”。xargs比-exec更有效,因为它将从第一个命令收集输出,并在一次调用中将其传递给grep,而不是按find返回的每行调用grep的新实例。