Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Search ';查找';或';grep';与目录和子目录中的模式匹配的文件名_Search_Recursion_Grep_Filesystems_Find - Fatal编程技术网

Search ';查找';或';grep';与目录和子目录中的模式匹配的文件名

Search ';查找';或';grep';与目录和子目录中的模式匹配的文件名,search,recursion,grep,filesystems,find,Search,Recursion,Grep,Filesystems,Find,我需要使用“grep”或“find”命令递归搜索我的文件系统,以匹配包含字符串“report”的任何文件名 我尝试了这个命令 find | grep "report[[:alnum:]]\." 虽然这接近我想要的输出,但它只提供以“report.(php/tpl/whatever)”结尾的文件 此命令有什么问题,或者我可以使用什么来生成所需的输出?您可以使用以下find命令: find . -name "*report*" *匹配任何内容(即使是空字符串)。因此,此表达式匹配所有类似于XXX

我需要使用“grep”或“find”命令递归搜索我的文件系统,以匹配包含字符串“report”的任何文件名

我尝试了这个命令

find | grep "report[[:alnum:]]\."
虽然这接近我想要的输出,但它只提供以“report.(php/tpl/whatever)”结尾的文件


此命令有什么问题,或者我可以使用什么来生成所需的输出?

您可以使用以下
find
命令:

find . -name "*report*"

*
匹配任何内容(即使是空字符串)。因此,此表达式匹配所有类似于
XXXXreportYYYY
的名称


引号的使用是为了避免bash扩展(试试
echo*
,看看会发生什么!-可能会有帮助。

查找-姓名“*报告*”
?完美伴侣,谢谢。正是我想要的。在“*report*”中使用引号和星号的语法背后有任何原因吗?
*
匹配任何内容(即使是空字符串)。因此,此表达式匹配所有类似于
XXXXreportYYYY
的名称。使用引号是为了避免bash扩展。太好了,再次感谢。将此作为答案添加,以便我选择正确的答案。@taylordustin这可能有偏差,但仍有字符以双引号展开,即
$
,等等。。。因此,如果您不确定扩展规则,我建议在希望bash将某些内容视为文本字符串时使用单引号(在本例中,您希望
find
处理特殊字符,而
bash
将其视为字符串)。