在目录下具有特定扩展名的文件中使用 grep

Gin*_*cob 11 search terminal grep

是否有允许在具有特定扩展名的目录下的文件中搜索关键字的命令?

该字符串grep -irn "string" ./path对目录下的所有文件进行递归搜索./path。我的具体要求是搜索./path带有扩展名的所有文件,例如*.h

Gin*_*cob 11

经过一些试验,我觉得grep -irn 'string' --include '*.h'更方便

  • 现在确实如此。尝试在当前目录中创建一个名为“foobar.h”的文件,然后再试一次。 (3认同)

G-M*_*ca' 10

小号等(打开)SH ELL选择离子globstar与所述命令

    shopt -s globstar
Run Code Online (Sandbox Code Playgroud)

这将导致**作为文件名组件意味着这里和下面的所有内容。这path/**意味着path目录 及其子目录中的所有内容。(您无需在./此处键入。)然后您可以使用

grep -in "string" path/**/*.h
Run Code Online (Sandbox Code Playgroud)

搜索.h中和下的所有文件path


您可以ü NSET的选项shopt -u


Ipo*_*cer 5

find /path -iname "*.h" -exec grep -inH "string" "{}" \;
Run Code Online (Sandbox Code Playgroud)