You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在find命令中同时匹配.md与.adoc文件执行grep检索

正确的find命令写法

find . \( -iname "*.md" -or -iname "*.adoc" \) -exec grep -I "foo" {} \;

注意事项

  • 之前写法失效的核心原因是find命令的运算符优先级问题:-or的优先级低于-exec,如果不把两个文件名匹配规则用括号包裹为同一个逻辑组,-exec只会作用于最后一个匹配条件
  • 括号需要加反斜杠\转义,避免被shell识别为自身的语法符号
  • 也可以用-o代替-or,二者功能完全一致,写法更短:
    find . \( -iname "*.md" -o -iname "*.adoc" \) -exec grep -I "foo" {} \;
    

更简洁的替代方案(无需find)

如果你不需要使用find的其他过滤规则,直接用grep自带的递归检索参数就能实现相同需求,写法更简单:

grep -I -r --include="*.md" --include="*.adoc" "foo" .
  • -r代表递归检索当前目录下的所有文件
  • 可以添加多个--include参数指定需要检索的文件后缀规则

内容的提问来源于stack exchange,提问作者Marek Stepanek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:18:04