$ grep -r 9900 *.mk
grep: *.mk: No such file or directory
$ grep -R 9900 *.mk
grep: *.mk: No such file or directory
$ grep -V
GNU grep 2.5.4
我是否使用了错误的grep?或者是什么语法?谢谢!
答案 0 :(得分:2)
您可以使用include标志:
grep -r --include="*.mk" 9900 .
grep手册页说:
- include:如果指定,则仅搜索与给定文件名模式匹配的文件。
答案 1 :(得分:1)
*.mk
的解析发生在shell中,而不是在grep,之前 grep来应用递归。由于当前目录不包含与模式匹配的任何文件,因此将模式文本传递给grep。 Grep不知道如何扩展模式 - 它只是试图找到名为字面*.mk
的文件,当然,它不能。
使用
find . -type f -name \*.mk -exec grep 9900 {} +
代替