我试过
grep -R '.*invalidTemplateName.*' -regex './online_admin/.*/UTF-8/.*'
Run Code Online (Sandbox Code Playgroud)
找到所有可能出现的 '. 无效的模板名称。' 目录正则表达式模式中的正则表达式'./online_admin/.*/UTF-8/.*',但它不起作用。我收到消息:
grep: ./online_admin/.*/UTF-8/.*: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我使用
grep -R '.*invalidTemplateName.*' .
Run Code Online (Sandbox Code Playgroud)
它在当前目录的所有子目录中查找,这是压倒性的。如何在 grep 中指定目录模式?是否可以?
在这里查找可能是更好的选择:
find ./online_admin/*/UTF-8/* -type f -exec grep -H "invalidTemplateName" {} \;
Run Code Online (Sandbox Code Playgroud)
查找将在您想要的位置找到所有文件,包括子目录UTF-8,然后grep对每个文件执行。该-H参数确保文件名将与匹配项一起打印。如果您只需要文件名,请改用该-L开关。