grep -r --include='*.c' --include='*.h' -e 'search this' -e 'search this, too' in_this_dir/
-i ignore case
-e PATTERN to enable to search for multiple patterns or patterns beginning with -
-w word matching
-L print file names only. result invered.
-l print file names only
-A NUM print lines after a line found
-B NUM print lines before a line found
-C NUM print lines around a line found
--exclude=GLOB excluding some files
--exclude-dir=DIR excluding a directory
--include=GLOB including some files only
-R or -r recursively