在目录下具有特定扩展名的文件中查找

在目录下具有特定扩展名的文件中查找

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

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

答案1

经过一些尝试,我认为grep -irn 'string' --include '*.h'更方便

答案2

年代et(打开)艾尔选择使用globstar命令

    shopt -s globstar

这将导致**文件名组件表示此处及下方的所有内容。因此path/**表示path目录 中的所有内容及其子目录. (您无需./在此处输入。)然后您可以使用

grep -in "string" path/**/*.h

搜索.h及 以下的所有文件path


你可以nset 选项与shopt -u

答案3

find /path -iname "*.h" -exec grep -inH "string" "{}" \;

答案4

这个如何?

find -L ./path -name "*.h" -exec grep -in "string" {} \;

解释:

  • -L :跟踪符号链接
  • -name :使用星号,你可以描述扩展
  • -in :与您的建议相同,但“r”被命令find替换
  • {} :代表find命令的结果
  • \; :如果find与结合-exec,则这是命令结束说明符

相关内容