繁体   English   中英

如何使用grep通过正则表达式在目录中查找?

[英]How to use grep to find in a directory by a regex?

我试过了

grep -R '.*invalidTemplateName.*' -regex './online_admin/.*/UTF-8/.*'

查找所有可能的数学运算符。 invalidTemplateName。 目录正则表达式模式'./online_admin/.*/UTF-8/.*' regex,但它不起作用。 我收到消息:

grep: ./online_admin/.*/UTF-8/.*: No such file or directory

如果我用

grep -R '.*invalidTemplateName.*' .

它在当前目录的所有子目录中查找。 如何在grep中指定目录模式? 可能吗?

在这里查找可能是一个更好的选择:

find ./online_admin/*/UTF-8/* -type f -exec grep -H "invalidTemplateName" {} \;

查找将在所需位置找到所有文件,包括UTF-8子目录,然后在每个文件上执行grep -H参数确保文件名将与匹配项一起打印。 如果只需要文件名,请使用-L开关。

find您可以执行以下操作:

find /abs/path/to/directory -maxdepth 1 -name '.*invalidTemplateName.*'

使用name参数,您可以直接按名称过滤。 您还可以在过滤字符串中使用通配符。 使用maxdepth参数,您可以指定递归级别以查找文件。 1种手段来查找/abs/path/to/directory ,2种手段在查找/abs/path/to/directory和目录中的在第一级/abs/path/to/directory为好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM