find(1) . -type f -iname "*.m" -exec grep(1) -i "Content" {} +
search for files in a directory hierarchy
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
-type c
       File is of type c:

       b      block (buffered) special

       c      character (unbuffered) special

       d      directory

       p      named pipe (FIFO)

       f      regular file

       l      symbolic link; this is never true if the -L option or the  -follow  option  is  in  effect,
              unless the symbolic link is broken.  If you want to search for symbolic links when -L is in
              effect, use -xtype.

       s      socket

       D      door (Solaris)
-iname pattern
       Like  -name,  but  the match is case insensitive.  For example, the patterns `fo*' and `F??' match
       the file names `Foo', `FOO', `foo', `fOo', etc.   In these patterns, unlike filename expansion  by
       the  shell,  an  initial  '.' can be matched by `*'.  That is, find -name *bar will match the file
       `.foobar'.   Please note that you should quote patterns as a matter of course, otherwise the shell
       will expand any wildcard characters in them.
-exec command ;
       Execute  command;  true  if 0 status is returned.  All following arguments to find are taken to be
       arguments to the command until an argument consisting of `;' is encountered.  The string  `{}'  is
       replaced  by  the  current  file name being processed everywhere it occurs in the arguments to the
       command, not just in arguments where it is alone, as in some versions  of  find.   Both  of  these
       constructions  might  need  to be escaped (with a `\') or quoted to protect them from expansion by
       the shell.  See the EXAMPLES section for examples of the use of the -exec option.   The  specified
       command  is  run  once  for each matched file.  The command is executed in the starting directory.
       There are unavoidable security problems surrounding use of the -exec action; you  should  use  the
       -execdir option instead.

-exec command {} +
       This variant of the -exec action runs the specified command on the selected files, but the command
       line is built by appending each selected file name at the end; the total number of invocations  of
       the command will be much less than the number of matched files.  The command line is built in much
       the same way that xargs builds its command lines.  Only one instance of `{}' is allowed within the
       command.  The command is executed in the starting directory.
print lines matching a pattern
-i, --ignore-case
       Ignore case distinctions in both the PATTERN and the input files.  (-i is specified by POSIX.)
grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus
(-) is given as file name) for lines containing a match to the given PATTERN.  By  default,  grep  prints
the matching lines.
source manpages: findgrep