如何以递归方式在特定目录结构下grep特定文件名中的文本?

时间:2016-01-13 20:12:04

标签: search terminal grep directory pattern-matching

我有一个目录,有数千个其他目录,每个目录都包含一致的目录结构以及我想要为文本模式进行grep的特定文件名。

假设我已经从我的根目录DIR开始执行grep,这样的目录:

/
   /dir1
      /etc
        /net
          /file.properties
   /dir2
      /etc
        /net
          /file.properties

我希望在所有目录dir1,dir2等中搜索所有file.properties文件中的文本模式,这些文件位于“* / etc / net / file.properties”路径下

我的grep命令会在我指定的路径结构下的file.properties中为我的模式搜索所有dir1,dir2 ... dirN是什么样的?

我现在拥有的是:

grep -r "text here" --include='*/net/etc/file.properties' .

2 个答案:

答案 0 :(得分:1)

显而易见的答案似乎是grep "text here" */etc/net/file.properties。是否有太多目录可供使用? 如果是这样,您可能会做类似

的事情
for dir in *; do
    if [ -f "$dir/net/etc/file.properties" ]; then
        echo "$dir/net/etc/file.properties"
    fi
done | xargs grep "text here"

答案 1 :(得分:0)

找到。 -name“file.properties”| grep“/etc/net/file.properties”| xargs grep“text here”