Linux grep递归,通配符不起作用
我用错grep了吗?或者语法是什么?谢谢 在grep应用递归之前,Linux grep递归,通配符不起作用,linux,grep,Linux,Grep,我用错grep了吗?或者语法是什么?谢谢 在grep应用递归之前,*.mk的解析发生在shell中,而不是grep中。由于当前目录不包含任何与模式匹配的文件,patten文本被传递给grep。Grep不知道如何扩展该模式——它只是尝试查找名为字面上的*.mk的文件,当然,它不能 使用 相反,在grep应用递归之前,*.mk的解析发生在shell中,而不是在grep中。由于当前目录不包含任何与模式匹配的文件,patten文本被传递给grep。Grep不知道如何扩展该模式——它只是尝试查找名为字面上
*.mk
的解析发生在shell中,而不是grep中。由于当前目录不包含任何与模式匹配的文件,patten文本被传递给grep。Grep不知道如何扩展该模式——它只是尝试查找名为字面上的*.mk
的文件,当然,它不能
使用
相反,在grep应用递归之前,
*.mk
的解析发生在shell中,而不是在grep中。由于当前目录不包含任何与模式匹配的文件,patten文本被传递给grep。Grep不知道如何扩展该模式——它只是尝试查找名为字面上的*.mk
的文件,当然,它不能
使用
相反,您可以使用include标志:
find . -type f -name \*.mk -exec grep 9900 {} +
grep手册页面上说:
--包括:如果指定,则只搜索与给定文件名模式匹配的文件
您可以使用包含标志:
find . -type f -name \*.mk -exec grep 9900 {} +
grep手册页面上说:
--包括:如果指定,则只搜索与给定文件名模式匹配的文件
find-键入f-name\*.mk-exec grep 9900{}+
find-键入f-name\*.mk-exec grep 9900{}+
grep -r --include="*.mk" 9900 .