Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux grep递归,通配符不起作用_Linux_Grep - Fatal编程技术网

Linux grep递归,通配符不起作用

Linux grep递归,通配符不起作用,linux,grep,Linux,Grep,我用错grep了吗?或者语法是什么?谢谢 在grep应用递归之前,*.mk的解析发生在shell中,而不是grep中。由于当前目录不包含任何与模式匹配的文件,patten文本被传递给grep。Grep不知道如何扩展该模式——它只是尝试查找名为字面上的*.mk的文件,当然,它不能 使用 相反,在grep应用递归之前,*.mk的解析发生在shell中,而不是在grep中。由于当前目录不包含任何与模式匹配的文件,patten文本被传递给grep。Grep不知道如何扩展该模式——它只是尝试查找名为字面上

我用错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 .