print lines matching a pattern
-I     Process  a  binary  file  as  if  it  did  not  contain  matching  data; this is equivalent to the
       --binary-files=without-match option.
-U, --binary
       Treat the file(s) as binary.  By default, under MS-DOS and MS-Windows, grep guesses the file  type
       by  looking  at  the contents of the first 32KB read from the file.  If grep decides the file is a
       text file, it strips  the  CR  characters  from  the  original  file  contents  (to  make  regular
       expressions  with  ^  and  $ work correctly).  Specifying -U overrules this guesswork, causing all
       files to be read and passed to the matching mechanism verbatim; if the file is a  text  file  with
       CR/LF  pairs  at  the  end  of  each line, this will cause some regular expressions to fail.  This
       option has no effect on platforms other than MS-DOS and MS-Windows.
-l, --files-with-matches
       Suppress normal output; instead print the name of each input file from which output would normally
       have been printed.  The scanning will stop on the first match.  (-l is specified by POSIX.)
-R, -r, --recursive
       Read all files under each directory, recursively; this is equivalent to the -d recurse option.
source manpages: grep