I have a bunch of folders and subfolders. Each one contains, amongst other things, a text file called index.yml
with useful data. I want to search through all of the different index.yml
files to find instances of a search string. I must be able to see a few lines of context and the directory of the index.yml
file that was found.
This almost works, but it doesn't give me the filename:
cat `find . -name 'index.yml'`| grep -i -C4 mySearchString
How can I do this and get the filename?
I am stuck on Windows with using msys. Note I don't seem to have full GNU grep, so I can't run grep --exclude
or grep -R
as suggested in other SO questions.
One possibility (I don't know what msys accepts exactly):
The
/dev/null
serves to ensure there are at least two pathnames so that the pathname is printed with each match. The-H
option to grep has a similar effect.The
-exec
...+
construct infind
causes multiple pathnames to be passed to a single instance of the command. If it is not implemented, you'll have to use-exec
...\;
.try this:
note: not actually tested under msys.