Is there any way to give grep some context? It's great knowing what file a word came from, but I've never figured out how to get grep to spit out the leading and following lines too.
-A NUM, --after-context=NUM
Print NUM lines of trailing context after matching lines. Places a
line containing a group separator (--) between contiguous groups of
matches. With the -o or --only-matching option, this has no effect and
a warning is given.
-B NUM, --before-context=NUM
Print NUM lines of leading context before matching lines. Places a
line containing a group separator (--) between contiguous groups of
matches. With the -o or --only-matching option, this has no effect and
a warning is given.
-C NUM, -NUM, --context=NUM
Print NUM lines of output context. Places a line containing a group
separator (--) between contiguous groups of matches. With the -o or
--only-matching option, this has no effect and a warning is given. find $1 -name $2 | xargs egrep -nC3 $3 | less
So, say: find ./ -name "*.rb" | xargs egrep -nC3 'gsub' | less
You'll get the matching line, three lines before and three lines after, as well as file name and line numbers.