Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
Shell 对多个查找结果执行grep_Shell_Grep_Cygwin - Fatal编程技术网

Shell 对多个查找结果执行grep

Shell 对多个查找结果执行grep,shell,grep,cygwin,Shell,Grep,Cygwin,我的问题与类似,只是我正在对多个find查询执行grep搜索。(我必须这样做,因为我必须将命令提交给实时服务器,我希望尽可能少地修改它们。) 我的问题是: find/c/some/dir/-iname“*html”-o-iname“*tpl”-exec grep-inH'search_string'{}\ 使用-o选项,grep搜索返回文件中以tpl结尾的所有“search_string”实例。它完全忽略了我传入的html扩展 有人遇到过这种情况吗?我如何告诉find在html和tpl扩展上执行

我的问题与类似,只是我正在对多个
find
查询执行
grep
搜索。(我必须这样做,因为我必须将命令提交给实时服务器,我希望尽可能少地修改它们。)

我的问题是:

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翻译问题,因此这可能是一个罪魁祸首…

我认为您需要对两个
-iname
子句进行分组,如下所示:

find /c/some/dir/ \( -iname "*html" -o -iname "*tpl" \) -exec grep -inH 'search_string' {} \;

逻辑or的优先级较低,这意味着
-exec
位仅适用于
-iname“*tpl”
子句。

你的意思是
“*.html”
对吧?是的,你完全正确,所以请解决这些问题,然后重试。哦,我误解了你的评论。“html”是“.html”的超集,因此它将捕获html扩展名等。(例如,它将捕获xhtml等。)这是我的想法,但我不知道这些语句是如何解析的。我现在就试试这个,如果合适的话,我会接受答案。谢谢