10

我有一堆文件夹和子文件夹。每一个都包含一个文本文件,其中包含index.yml有用的数据。我想搜索所有不同的index.yml文件以查找搜索字符串的实例。我必须能够看到几行上下文和index.yml找到的文件的目录。

这几乎可以工作,但它没有给我文件名:

cat `find . -name 'index.yml'`| grep -i -C4 mySearchString

我怎样才能做到这一点并获取文件名?

我被困在使用 msys 的 Windows 上。注意我似乎没有完整的 GNU grep,所以我无法运行grep --excludegrep -R按照其他 SO 问题中的建议。

4

2 回答 2

10

试试这个:

find -name "index.yml" -exec grep -i -H -C4 pattern {} \;

注意:没有在 msys 下实际测试过。

于 2010-08-21T21:14:35.763 回答
0

一种可能性(我不知道 msys 究竟接受什么):

 find . -name index.yml -exec grep -i -C4 mySearchString /dev/null {} +

/dev/null用于确保至少有两个路径名,以便在每次匹配时打印路径名。grep的-H选项具有类似的效果。

-exec...+构造 infind导致将多个路径名传递给命令的单个实例。如果没有实现,你将不得不使用-exec... \;

于 2010-08-21T21:19:11.320 回答