如何在多个文件中找到第一个匹配项

gab*_*zie 4 command-line grep find

find 命令有没有办法多个文件的每个文件中搜索字符串或模式的第一个匹配项或出现?我一直在使用通常的语法:

 find dir -iname '*.ext' -exec command 'pattern' {} \;
Run Code Online (Sandbox Code Playgroud)

(我也碰巧正在搜索 pdf,-exec pdfgrep但假设这将是一般问题的特例,可以事后或单独处理。)

请记住,这与使用 find-quit或搜索生成第一个结果的常见问题不同head -n 1

sus*_*tus 8

只需使用-mGNU 选项,grep它会在(在示例中)一场比赛后停止读取文件。

find dir -iname '*.ext' -exec grep -m 1  'pattern' {} \;
Run Code Online (Sandbox Code Playgroud)