我的问题与this one非常相似,只是我正在对多个grep
查询执行find
搜索。 (我必须这样做,因为我必须将我的命令提交给实时服务器,并且我想尽可能少地修改它们。)
这是我的问题:
find /c/some/dir/ -iname "*html" -o -iname "*tpl" -exec grep -inH 'search_string' {} \;
使用-o选项,grep搜索将返回以tpl结尾的文件中“search_string”的所有实例。它完全忽略了我传入的html扩展......
有没有人遇到过这个?我怎么告诉find在html和tpl扩展上执行grep?
(我正在运行Cygwin,过去曾有过一些Windows翻译问题,所以这可能是罪魁祸首......)
答案 0 :(得分:2)
我认为您需要对两个-iname
子句进行分组,如下所示:
find /c/some/dir/ \( -iname "*html" -o -iname "*tpl" \) -exec grep -inH 'search_string' {} \;
逻辑或优先级较低,这意味着-exec
位仅适用于您的-iname "*tpl"
子句。