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

如何用find+exec命令查找含指定字符串的文件并显示文件名与行

解决办法

给grep加个-H参数就能同时显示文件名和匹配行,它会强制在匹配内容前标注对应的文件名,不管grep处理单个还是多个文件:

find . -name "*.txt" -exec grep -H 'EOF' {} \;

还有个更高效的写法,用find的{} +语法把所有符合条件的txt文件一次性传给grep,这时grep因为处理多个文件,默认就会自动显示文件名:

find . -name "*.txt" -exec grep 'EOF' {} +

为啥之前的命令不符合需求?

  • 第一次用的grep 'EOF' {} \;,因为find每次只传一个文件给grep,grep处理单个文件时默认不显示文件名,所以只输出匹配行。
  • 第二次加了-print,会把所有找到的txt文件名都打印出来,不管文件里有没有"EOF",所以不符合只显示匹配文件的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:51:18