grep: Matching Control

 
 2.1.2 Matching Control
 ----------------------
 
 ‘-e PATTERNS’
 ‘--regexp=PATTERNS’
      Use PATTERNS as one or more patterns; newlines within PATTERNS
      separate each pattern from the next.  If this option is used
      multiple times or is combined with the ‘-f’ (‘--file’) option,
      search for all patterns given.  Typically PATTERNS should be quoted
      when ‘grep’ is used in a shell command.  (‘-e’ is specified by
      POSIX.)
 
 ‘-f FILE’
 ‘--file=FILE’
      Obtain patterns from FILE, one per line.  If this option is used
      multiple times or is combined with the ‘-e’ (‘--regexp’) option,
      search for all patterns given.  The empty file contains zero
      patterns, and therefore matches nothing.  (‘-f’ is specified by
      POSIX.)
 
 ‘-i’
 ‘-y’
 ‘--ignore-case’
      Ignore case distinctions in patterns and input data, so that
      characters that differ only in case match each other.  Although
      this is straightforward when letters differ in case only via
      lowercase-uppercase pairs, the behavior is unspecified in other
      situations.  For example, uppercase “S” has an unusual lowercase
      counterpart “ſ” (Unicode character U+017F, LATIN SMALL LETTER LONG
      S) in many locales, and it is unspecified whether this unusual
      character matches “S” or “s” even though uppercasing it yields “S”.
      Another example: the lowercase German letter “ß” (U+00DF, LATIN
      SMALL LETTER SHARP S) is normally capitalized as the two-character
      string “SS” but it does not match “SS”, and it might not match the
      uppercase letter “ẞ” (U+1E9E, LATIN CAPITAL LETTER SHARP S) even
      though lowercasing the latter yields the former.
 
      ‘-y’ is an obsolete synonym that is provided for compatibility.
      (‘-i’ is specified by POSIX.)
 
 ‘--no-ignore-case’
      Do not ignore case distinctions in patterns and input data.  This
      is the default.  This option is useful for passing to shell scripts
      that already use ‘-i’, in order to cancel its effects because the
      two options override each other.
 
 ‘-v’
 ‘--invert-match’
      Invert the sense of matching, to select non-matching lines.  (‘-v’
      is specified by POSIX.)
 
 ‘-w’
 ‘--word-regexp’
      Select only those lines containing matches that form whole words.
      The test is that the matching substring must either be at the
      beginning of the line, or preceded by a non-word constituent
      character.  Similarly, it must be either at the end of the line or
      followed by a non-word constituent character.  Word constituent
      characters are letters, digits, and the underscore.  This option
      has no effect if ‘-x’ is also specified.
 
      Because the ‘-w’ option can match a substring that does not begin
      and end with word constituents, it differs from surrounding a
      regular expression with ‘\<’ and ‘\>’.  For example, although ‘grep
      -w @’ matches a line containing only ‘@’, ‘grep '\<@\>'’ cannot
      match any line because ‘@’ is not a word constituent.  ⇒The
      Backslash Character and Special Expressions.
 
 ‘-x’
 ‘--line-regexp’
      Select only those matches that exactly match the whole line.  For
      regular expression patterns, this is like parenthesizing each
      pattern and then surrounding it with ‘^’ and ‘$’.  (‘-x’ is
      specified by POSIX.)