[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Changes to manual/grep.txt

From: Karl Berry
Subject: Changes to manual/grep.txt
Date: Sun, 24 May 2009 18:43:04 +0000

CVSROOT:        /web/grep
Module name:    grep
Changes by:     Karl Berry <karl>       09/05/24 18:43:01

Index: manual/grep.txt
RCS file: manual/grep.txt
diff -N manual/grep.txt
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ manual/grep.txt     24 May 2009 18:42:56 -0000      1.1
@@ -0,0 +1,1846 @@
+Table of Contents
+1 Introduction
+2 Invoking `grep'
+  2.1 Command-line Options
+    2.1.1 Generic Program Information
+    2.1.2 Matching Control
+    2.1.3 General Output Control
+    2.1.4 Output Line Prefix Control
+    2.1.5 Context Line Control
+    2.1.6 File and Directory Selection
+    2.1.7 Other Options
+  2.2 Environment Variables
+  2.3 Exit Status
+  2.4 `grep' Programs
+3 Regular Expressions
+  3.1 Fundamental Structure
+  3.2 Character Classes and Bracket Expressions
+  3.3 The Backslash Character and Special Expressions
+  3.4 Anchoring
+  3.5 Back-references and Subexpressions
+  3.6 Basic vs Extended Regular Expressions
+4 Usage
+5 Reporting bugs
+  5.1 Known Bugs
+6 Copying
+  6.1 GNU Free Documentation License
+`grep' prints lines that match a pattern.
+   This manual is for version 2.5.4 of GNU Grep.
+   This manual is for `grep', a pattern matching engine.
+   Copyright (C) 1999, 2000, 2001, 2002, 2005, 2008, 2009 Free Software
+Foundation, Inc.
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.3 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with no Front-Cover Texts,
+     and with no Back-Cover Texts.  A copy of the license is included
+     in the section entitled "GNU Free Documentation License".
+1 Introduction
+`grep' searches the input files for lines containing a match to a given
+pattern list.  When it finds a match in a line, it copies the line to
+standard output (by default), or produces whatever other sort of output
+you have requested with options.
+   Though `grep' expects to do the matching on text, it has no limits
+on input line length other than available memory, and it can match
+arbitrary characters within a line.  If the final byte of an input file
+is not a newline, `grep' silently supplies one.  Since newline is also
+a separator for the list of patterns, there is no way to match newline
+characters in a text.
+2 Invoking `grep'
+The general synopsis of the `grep' command line is
+There can be zero or more OPTIONS.  PATTERN will only be seen as such
+(and not as an INPUT_FILE_NAME) if it wasn't already specified within
+OPTIONS (by using the `-e PATTERN' or `-f FILE' options).  There can be
+zero or more INPUT_FILE_NAMES.
+2.1 Command-line Options
+`grep' comes with a rich set of options: some from POSIX.2 and some
+being GNU extensions.  Long option names are always a GNU extension,
+even for options that are from POSIX specifications.  Options that are
+specified by POSIX, under their short names, are explicitly marked as
+such to facilitate POSIX-portable programming.  A few option names are
+provided for compatibility with older or more exotic implementations.
+   Several additional options control which variant of the `grep'
+matching engine is used.  *Note grep Programs::.
+2.1.1 Generic Program Information
+     Print a usage message briefly summarizing the command-line options
+     and the bug-reporting address, then exit.
+     Print the version number of `grep' to the standard output stream.
+     This version number should be included in all bug reports.
+2.1.2 Matching Control
+     Use PATTERN as the pattern.  This can be used to specify multiple
+     search patterns, or to protect a pattern beginning with a `-'.
+     (`-e' is specified by POSIX.)
+`-f FILE'
+     Obtain patterns from FILE, one per line.  The empty file contains
+     zero patterns, and therefore matches nothing.  (`-f' is specified
+     by POSIX.)
+     Ignore case distinctions in both the pattern and the input files.
+     `-y' is an obsolete synonym that is provided for compatibility.
+     (`-i' is specified by POSIX.)
+     Invert the sense of matching, to select non-matching lines.  (`-v'
+     is specified by POSIX.)
+     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.
+     Select only those matches that exactly match the whole line.
+     (`-x' is specified by POSIX.)
+2.1.3 General Output Control
+     Suppress normal output; instead print a count of matching lines
+     for each input file.  With the `-v', `--invert-match' option,
+     count non-matching lines.  (`-c' is specified by POSIX.)
+     Surround the matched (non-empty) strings, matching lines, context
+     lines, file names, line numbers, byte offsets, and separators (for
+     fields and groups of context lines) with escape sequences to
+     display them in color on the terminal.  The colors are defined by
+     the environment variable GREP_COLORS and default to
+     `ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36' for bold red
+     matched text, magenta file names, green line numbers, green byte
+     offsets, cyan separators, and default terminal colors otherwise.
+     The deprecated environment variable GREP_COLOR is still supported,
+     but its setting does not have priority; it defaults to `01;31'
+     (bold red) which only covers the color for matched text.  WHEN is
+     `never', `always', or `auto'.
+     Suppress normal output; instead print the name of each input file
+     from which no output would normally have been printed.  The
+     scanning of every file will stop on the first match.
+     Suppress normal output; instead print the name of each input file
+     from which output would normally have been printed.  The scanning
+     of every file will stop on the first match.  (`-l' is specified by
+     POSIX.)
+`-m NUM'
+     Stop reading a file after NUM matching lines.  If the input is
+     standard input from a regular file, and NUM matching lines are
+     output, `grep' ensures that the standard input is positioned just
+     after the last matching line before exiting, regardless of the
+     presence of trailing context lines.  This enables a calling
+     process to resume a search.  For example, the following shell
+     script makes use of it:
+          while grep -m 1 PATTERN
+          do
+            echo xxxx
+          done < FILE
+     But the following probably will not work because a pipe is not a
+     regular file:
+          # This probably will not work.
+          cat FILE |
+          while grep -m 1 PATTERN
+          do
+            echo xxxx
+          done
+     When `grep' stops after NUM matching lines, it outputs any
+     trailing context lines.  Since context does not include matching
+     lines, `grep' will stop when it encounters another matching line.
+     When the `-c' or `--count' option is also used, `grep' does not
+     output a count greater than NUM.  When the `-v' or
+     `--invert-match' option is also used, `grep' stops after
+     outputting NUM non-matching lines.
+     Print only the matched (non-empty) parts of matching lines, with
+     each such part on a separate output line.
+     Quiet; do not write anything to standard output.  Exit immediately
+     with zero status if any match is found, even if an error was
+     detected.  Also see the `-s' or `--no-messages' option.  (`-q' is
+     specified by POSIX.)
+     Suppress error messages about nonexistent or unreadable files.
+     Portability note: unlike GNU `grep', 7th Edition Unix `grep' did
+     not conform to POSIX, because it lacked `-q' and its `-s' option
+     behaved like GNU `grep''s `-q' option.  USG-style `grep' also
+     lacked `-q' but its `-s' option behaved like GNU `grep''s.
+     Portable shell scripts should avoid both `-q' and `-s' and should
+     redirect standard and error output to `/dev/null' instead.  (`-s'
+     is specified by POSIX.)
+2.1.4 Output Line Prefix Control
+When several prefix fields are to be output, the order is always file
+name, line number, and byte offset, regardless of the order in which
+these options were specified.
+     Print the 0-based byte offset within the input file before each
+     line of output.  If `-o' (`--only-matching') is specified, print
+     the offset of the matching part itself.  When `grep' runs on
+     MS-DOS or MS-Windows, the printed byte offsets depend on whether
+     the `-u' (`--unix-byte-offsets') option is used; see below.
+     Print the file name for each match.  This is the default when
+     there is more than one file to search.
+     Suppress the prefixing of file names on output.  This is the
+     default when there is only one file (or only standard input) to
+     search.
+     Display input actually coming from standard input as input coming
+     from file LABEL.  This is especially useful for tools like `zgrep';
+     e.g.:
+          gzip -cd foo.gz | grep --label=foo something
+     Prefix each line of output with the 1-based line number within its
+     input file.  (`-n' is specified by POSIX.)
+     Make sure that the first character of actual line content lies on
+     a tab stop, so that the alignment of tabs looks normal.  This is
+     useful with options that prefix their output to the actual content:
+     `-H', `-n', and `-b'.  In order to improve the probability that
+     lines from a single file will all start at the same column, this
+     also causes the line number and byte offset (if present) to be
+     printed in a minimum-size field width.
+     Report Unix-style byte offsets.  This option causes `grep' to
+     report byte offsets as if the file were a Unix-style text file,
+     i.e., the byte offsets ignore the `CR' characters that were
+     stripped.  This will produce results identical to running `grep'
+     on a Unix machine.  This option has no effect unless the `-b'
+     option is also used; it has no effect on platforms other than
+     MS-DOS and MS-Windows.
+     Output a zero byte (the ASCII `NUL' character) instead of the
+     character that normally follows a file name.  For example, `grep
+     -lZ' outputs a zero byte after each file name instead of the usual
+     newline.  This option makes the output unambiguous, even in the
+     presence of file names containing unusual characters like newlines.
+     This option can be used with commands like `find -print0', `perl
+     -0', `sort -z', and `xargs -0' to process arbitrary file names,
+     even those that contain newline characters.
+2.1.5 Context Line Control
+Regardless of how these options are set, `grep' will never print any
+given line more than once.  If the `-o' or `--only-matching' option is
+specified, these options have no effect and a warning is given upon
+their use.
+`-A NUM'
+     Print NUM lines of trailing context after matching lines.
+`-B NUM'
+     Print NUM lines of leading context before matching lines.
+`-C NUM'
+     Print NUM lines of leading and trailing output context.
+   Matching lines normally use `:' as a separator between prefix fields
+and actual line content.  Context (i.e., non-matching) lines use `-'
+instead.  When no context is specified, matching lines are simply
+output one right after another.  When nonzero context is specified,
+lines that are adjacent in the input form a group and are output one
+right after another, but disjoint groups of lines are separated by a
+`--' without any prefix and on a line of its own.  Each group may
+contain several matching lines when they are close enough to each other
+that two otherwise adjacent but divided groups connect and can just
+merge into a single contiguous one.
+2.1.6 File and Directory Selection
+     Process a binary file as if it were text; this is equivalent to
+     the `--binary-files=text' option.
+     If the first few bytes of a file indicate that the file contains
+     binary data, assume that the file is of type TYPE.  By default,
+     TYPE is `binary', and `grep' normally outputs either a one-line
+     message saying that a binary file matches, or no message if there
+     is no match.  If TYPE is `without-match', `grep' assumes that a
+     binary file does not match; this is equivalent to the `-I' option.
+     If TYPE is `text', `grep' processes a binary file as if it were
+     text; this is equivalent to the `-a' option.  _Warning:_
+     `--binary-files=text' might output binary garbage, which can have
+     nasty side effects if the output is a terminal and if the terminal
+     driver interprets some of it as commands.
+     If an input file is a device, FIFO, or socket, use ACTION to
+     process it.  By default, ACTION is `read', which means that
+     devices are read just as if they were ordinary files.  If ACTION
+     is `skip', devices, FIFOs, and sockets are silently skipped.
+`-d ACTION'
+     If an input file is a directory, use ACTION to process it.  By
+     default, ACTION is `read', which means that directories are read
+     just as if they were ordinary files (some operating systems and
+     file systems disallow this, and will cause `grep' to print error
+     messages for every directory or silently skip them).  If ACTION is
+     `skip', directories are silently skipped.  If ACTION is `recurse',
+     `grep' reads all files under each directory, recursively; this is
+     equivalent to the `-r' option.
+     Skip files whose base name matches GLOB (using wildcard matching).
+     A file-name glob can use `*', `?', and `['...`]' as wildcards, and
+     `\' to quote a wildcard or backslash character literally.
+     Skip files whose base name matches any of the file-name globs read
+     from FILE (using wildcard matching as described under `--exclude').
+     Exclude directories matching the pattern DIR from recursive
+     directory searches.
+     Process a binary file as if it did not contain matching data; this
+     is equivalent to the `--binary-files=without-match' option.
+     Search only files whose base name matches GLOB (using wildcard
+     matching as described under `--exclude').
+     For each directory mentioned on the command line, read and process
+     all files in that directory, recursively.  This is the same as the
+     `--directories=recurse' option.
+2.1.7 Other Options
+     Use line buffering on output.  This can cause a performance
+     penalty.
+     If possible, use the `mmap' system call to read input, instead of
+     the default `read' system call.  In some situations, `--mmap'
+     yields better performance.  However, `--mmap' can cause undefined
+     behavior (including core dumps) if an input file shrinks while
+     `grep' is operating, or if an I/O error occurs.
+     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.
+     Treat the input as a set of lines, each terminated by a zero byte
+     (the ASCII `NUL' character) instead of a newline.  Like the `-Z'
+     or `--null' option, this option can be used with commands like
+     `sort -z' to process arbitrary file names.
+2.2 Environment Variables
+The behavior of `grep' is affected by the following environment
+   The locale for category `LC_FOO' is specified by examining the three
+environment variables `LC_ALL', `LC_FOO', and `LANG', in that order.
+The first of these variables that is set specifies the locale.  For
+example, if `LC_ALL' is not set, but `LC_MESSAGES' is set to `pt_BR',
+then the Brazilian Portuguese locale is used for the `LC_MESSAGES'
+category.  The `C' locale is used if none of these environment
+variables are set, if the locale catalog is not installed, or if `grep'
+was not compiled with national language support (NLS).
+     This variable specifies default options to be placed in front of
+     any explicit options.  For example, if `GREP_OPTIONS' is
+     `--binary-files=without-match --directories=skip', `grep' behaves
+     as if the two options `--binary-files=without-match' and
+     `--directories=skip' had been specified before any explicit
+     options.  Option specifications are separated by whitespace.  A
+     backslash escapes the next character, so it can be used to specify
+     an option containing whitespace or a backslash.
+     This variable specifies the color used to highlight matched
+     (non-empty) text.  It is deprecated in favor of `GREP_COLORS', but
+     still supported.  The `mt', `ms', and `mc' capabilities of
+     `GREP_COLORS' have priority over it.  It can only specify the
+     color used to highlight the matching non-empty text in any
+     matching line (a selected line when the `-v' command-line option
+     is omitted, or a context line when `-v' is specified).  The
+     default is `01;31', which means a bold red foreground text on the
+     terminal's default background.
+     This variable specifies the colors and other attributes used to
+     highlight various parts of the output.  Its value is a
+     colon-separated list of capabilities that defaults to
+     `ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36' with the `rv'
+     and `ne' boolean capabilities omitted (i.e., false).  Supported
+     capabilities are as follows.
+    `sl='
+          SGR substring for whole selected lines (i.e., matching lines
+          when the `-v' command-line option is omitted, or non-matching
+          lines when `-v' is specified).  If however the boolean `rv'
+          capability and the `-v' command-line option are both
+          specified, it applies to context matching lines instead.  The
+          default is empty (i.e., the terminal's default color pair).
+    `cx='
+          SGR substring for whole context lines (i.e., non-matching
+          lines when the `-v' command-line option is omitted, or
+          matching lines when `-v' is specified).  If however the
+          boolean `rv' capability and the `-v' command-line option are
+          both specified, it applies to selected non-matching lines
+          instead.  The default is empty (i.e., the terminal's default
+          color pair).
+    `rv'
+          Boolean value that reverses (swaps) the meanings of the `sl='
+          and `cx=' capabilities when the `-v' command-line option is
+          specified.  The default is false (i.e., the capability is
+          omitted).
+    `mt=01;31'
+          SGR substring for matching non-empty text in any matching line
+          (i.e., a selected line when the `-v' command-line option is
+          omitted, or a context line when `-v' is specified).  Setting
+          this is equivalent to setting both `ms=' and `mc=' at once to
+          the same value.  The default is a bold red text foreground
+          over the current line background.
+    `ms=01;31'
+          SGR substring for matching non-empty text in a selected line.
+          (This is only used when the `-v' command-line option is
+          omitted.)  The effect of the `sl=' (or `cx=' if `rv')
+          capability remains active when this kicks in.  The default is
+          a bold red text foreground over the current line background.
+    `mc=01;31'
+          SGR substring for matching non-empty text in a context line.
+          (This is only used when the `-v' command-line option is
+          specified.)  The effect of the `cx=' (or `sl=' if `rv')
+          capability remains active when this kicks in.  The default is
+          a bold red text foreground over the current line background.
+    `fn=35'
+          SGR substring for file names prefixing any content line.  The
+          default is a magenta text foreground over the terminal's
+          default background.
+    `ln=32'
+          SGR substring for line numbers prefixing any content line.
+          The default is a green text foreground over the terminal's
+          default background.
+    `bn=32'
+          SGR substring for byte offsets prefixing any content line.
+          The default is a green text foreground over the terminal's
+          default background.
+    `se=36'
+          SGR substring for separators that are inserted between
+          selected line fields (`:'), between context line fields (`-'),
+          and between groups of adjacent lines when nonzero context is
+          specified (`--').  The default is a cyan text foreground over
+          the terminal's default background.
+    `ne'
+          Boolean value that prevents clearing to the end of line using
+          Erase in Line (EL) to Right (`\33[K') each time a colorized
+          item ends.  This is needed on terminals on which EL is not
+          supported.  It is otherwise useful on terminals for which the
+          `back_color_erase' (`bce') boolean terminfo capability does
+          not apply, when the chosen highlight colors do not affect the
+          background, or when EL is too slow or causes too much flicker.
+          The default is false (i.e., the capability is omitted).
+     Note that boolean capabilities have no `='... part.  They are
+     omitted (i.e., false) by default and become true when specified.
+     See the Select Graphic Rendition (SGR) section in the
+     documentation of your text terminal for permitted values and their
+     meaning as character attributes.  These substring values are
+     integers in decimal representation and can be concatenated with
+     semicolons.  `grep' takes care of assembling the result into a
+     complete SGR sequence (`\33['...`m').  Common values to
+     concatenate include `1' for bold, `4' for underline, `5' for blink,
+     `7' for inverse, `39' for default foreground color, `30' to `37'
+     for foreground colors, `90' to `97' for 16-color mode foreground
+     colors, `38;5;0' to `38;5;255' for 88-color and 256-color modes
+     foreground colors, `49' for default background color, `40' to `47'
+     for background colors, `100' to `107' for 16-color mode background
+     colors, and `48;5;0' to `48;5;255' for 88-color and 256-color
+     modes background colors.
+     These variables specify the locale for the `LC_COLLATE' category,
+     which determines the collating sequence used to interpret range
+     expressions like `[a-z]'.
+     These variables specify the locale for the `LC_CTYPE' category,
+     which determines the type of characters, e.g., which characters
+     are whitespace.
+     These variables specify the locale for the `LC_MESSAGES' category,
+     which determines the language that `grep' uses for messages.  The
+     default `C' locale uses American English messages.
+     If set, `grep' behaves as POSIX.2 requires; otherwise, `grep'
+     behaves more like other GNU programs.  POSIX.2 requires that
+     options that follow file names must be treated as file names; by
+     default, such options are permuted to the front of the operand list
+     and are treated as options.  Also, POSIX.2 requires that
+     unrecognized options be diagnosed as "illegal", but since they are
+     not really against the law the default is to diagnose them as
+     "invalid".  `POSIXLY_CORRECT' also disables
+     `_N_GNU_nonoption_argv_flags_', described below.
+     (Here `N' is `grep''s numeric process ID.)  If the Ith character
+     of this environment variable's value is `1', do not consider the
+     Ith operand of `grep' to be an option, even if it appears to be
+     one.  A shell can put this variable in the environment for each
+     command it runs, specifying which operands are the results of file
+     name wildcard expansion and therefore should not be treated as
+     options.  This behavior is available only with the GNU C library,
+     and only when `POSIXLY_CORRECT' is not set.
+2.3 Exit Status
+Normally, the exit status is 0 if selected lines are found and 1
+otherwise.  But the exit status is 2 if an error occurred, unless the
+`-q' or `--quiet' or `--silent' option is used and a selected line is
+found.  Note, however, that POSIX only mandates, for programs such as
+`grep', `cmp', and `diff', that the exit status in case of error be
+greater than 1; it is therefore advisable, for the sake of portability,
+to use logic that tests for this general condition instead of strict
+equality with 2.
+2.4 `grep' Programs
+`grep' searches the named input files (or standard input if no files
+are named, or the file name `-' is given) for lines containing a match
+to the given pattern.  By default, `grep' prints the matching lines.
+There are four major variants of `grep', controlled by the following
+     Interpret the pattern as a basic regular expression (BRE).  This
+     is the default.
+     Interpret the pattern as an extended regular expression (ERE).
+     (`-E' is specified by POSIX.)
+     Interpret the pattern as a list of fixed strings, separated by
+     newlines, any of which is to be matched.  (`-F' is specified by
+     POSIX.)
+     Interpret the pattern as a Perl regular expression.  This is
+     highly experimental and `grep -P' may warn of unimplemented
+     features.
+   In addition, two variant programs `egrep' and `fgrep' are available.
+`egrep' is the same as `grep -E'.  `fgrep' is the same as `grep -F'.
+Direct invocation as either `egrep' or `fgrep' is deprecated, but is
+provided to allow historical applications that rely on them to run
+3 Regular Expressions
+A "regular expression" is a pattern that describes a set of strings.
+Regular expressions are constructed analogously to arithmetic
+expressions, by using various operators to combine smaller expressions.
+`grep' understands two different versions of regular expression syntax:
+"basic"(BRE) and "extended"(ERE).  In GNU `grep', there is no
+difference in available functionality using either syntax.  In other
+implementations, basic regular expressions are less powerful.  The
+following description applies to extended regular expressions;
+differences for basic regular expressions are summarized afterwards.
+3.1 Fundamental Structure
+The fundamental building blocks are the regular expressions that match
+a single character.  Most characters, including all letters and digits,
+are regular expressions that match themselves.  Any meta-character with
+special meaning may be quoted by preceding it with a backslash.
+   A regular expression may be followed by one of several repetition
+     The period `.' matches any single character.
+     The preceding item is optional and will be matched at most once.
+     The preceding item will be matched zero or more times.
+     The preceding item will be matched one or more times.
+     The preceding item is matched exactly N times.
+     The preceding item is matched N or more times.
+     The preceding item is matched at most M times.
+     The preceding item is matched at least N times, but not more than
+     M times.
+   Two regular expressions may be concatenated; the resulting regular
+expression matches any string formed by concatenating two substrings
+that respectively match the concatenated expressions.
+   Two regular expressions may be joined by the infix operator `|'; the
+resulting regular expression matches any string matching either
+alternalte expression.
+   Repetition takes precedence over concatenation, which in turn takes
+precedence over alternation.  A whole expression may be enclosed in
+parentheses to override these precedence rules and form a subexpression.
+3.2 Character Classes and Bracket Expressions
+A "bracket expression" is a list of characters enclosed by `[' and `]'.
+It matches any single character in that list; if the first character of
+the list is the caret `^', then it matches any character *not* in the
+list.  For example, the regular expression `[0123456789]' matches any
+single digit.
+   Within a bracket expression, a "range expression" consists of two
+characters separated by a hyphen.  It matches any single character that
+sorts between the two characters, inclusive, using the locale's
+collating sequence and character set.  For example, in the default C
+locale, `[a-d]' is equivalent to `[abcd]'.  Many locales sort
+characters in dictionary order, and in these locales `[a-d]' is
+typically not equivalent to `[abcd]'; it might be equivalent to
+`[aBbCcDd]', for example.  To obtain the traditional interpretation of
+bracket expressions, you can use the `C' locale by setting the `LC_ALL'
+environment variable to the value `C'.
+   Finally, certain named classes of characters are predefined within
+bracket expressions, as follows.  Their interpretation depends on the
+`LC_CTYPE' locale; the interpretation below is that of the `C' locale,
+which is the default if no `LC_CTYPE' locale is specified.
+     Alphanumeric characters: `[:alpha:]' and `[:digit:]'.
+     Alphabetic characters: `[:lower:]' and `[:upper:]'.
+     Blank characters: space and tab.
+     Control characters.  In ASCII, these characters have octal codes
+     000 through 037, and 177 (`DEL').  In other character sets, these
+     are the equivalent characters, if any.
+     Digits: `0 1 2 3 4 5 6 7 8 9'.
+     Graphical characters: `[:alnum:]' and `[:punct:]'.
+     Lower-case letters: `a b c d e f g h i j k l m n o p q r s t u v w
+     x y z'.
+     Printable characters: `[:alnum:]', `[:punct:]', and space.
+     Punctuation characters: `! " # $ % & ' ( ) * + , - . / : ; < = > ?
+     @ [ \ ] ^ _ ` { | } ~'.
+     Space characters: tab, newline, vertical tab, form feed, carriage
+     return, and space.
+     Upper-case letters: `A B C D E F G H I J K L M N O P Q R S T U V W
+     X Y Z'.
+     Hexadecimal digits: `0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f'.
+   For example, `[[:alnum:]]' means `[0-9A-Za-z]', except the latter
+depends upon the `C' locale and the ASCII character encoding, whereas
+the former is independent of locale and character set.  (Note that the
+brackets in these class names are part of the symbolic names, and must
+be included in addition to the brackets delimiting the bracket
+   Most meta-characters lose their special meaning inside bracket
+     ends the bracket expression if it's not the first list item.  So,
+     if you want to make the `]' character a list item, you must put it
+     first.
+     represents the open collating symbol.
+     represents the close collating symbol.
+     represents the open equivalence class.
+     represents the close equivalence class.
+     represents the open character class symbol, and should be followed
+     by a valid character class name.
+     represents the close character class symbol.
+     represents the range if it's not first or last in a list or the
+     ending point of a range.
+     represents the characters not in the list.  If you want to make
+     the `^' character a list item, place it anywhere but first.
+3.3 The Backslash Character and Special Expressions
+The `\' character, when followed by certain ordinary characters, takes
+a special meaning:
+     Match the empty string at the edge of a word.
+     Match the empty string provided it's not at the edge of a word.
+     Match the empty string at the beginning of word.
+     Match the empty string at the end of word.
+     Match word constituent, it is a synonym for `[[:alnum:]]'.
+     Match non-word constituent, it is a synonym for `[^[:alnum:]]'.
+   For example, `\brat\b' matches the separate word `rat', `\Brat\B'
+matches `crate' but not `furry rat'.
+3.4 Anchoring
+The caret `^' and the dollar sign `$' are meta-characters that
+respectively match the empty string at the beginning and end of a line.
+3.5 Back-references and Subexpressions
+The back-reference `\N', where N is a single digit, matches the
+substring previously matched by the Nth parenthesized subexpression of
+the regular expression.  For example, `(a)\1' matches `aa'.  When used
+with alternation, if the group does not participate in the match then
+the back-reference makes the whole match fail.  For example, `a(.)|b\1'
+will not match `ba'.  When multiple regular expressions are given with
+`-e' or from a file (`-f file'), back-references are local to each
+3.6 Basic vs Extended Regular Expressions
+In basic regular expressions the meta-characters `?', `+', `{', `|',
+`(', and `)' lose their special meaning; instead use the backslashed
+versions `\?', `\+', `\{', `\|', `\(', and `\)'.
+   Traditional `egrep' did not support the `{' meta-character, and some
+`egrep' implementations support `\{' instead, so portable scripts
+should avoid `{' in `grep -E' patterns and should use `[{]' to match a
+literal `{'.
+   GNU `grep -E' attempts to support traditional usage by assuming that
+`{' is not special if it would be the start of an invalid interval
+specification.  For example, the command `grep -E '{1'' searches for
+the two-character string `{1' instead of reporting a syntax error in
+the regular expression.  POSIX.2 allows this behavior as an extension,
+but portable scripts should avoid it.
+4 Usage
+Here is an example command that invokes GNU `grep':
+     grep -i 'hello.*world' menu.h main.c
+This lists all lines in the files `menu.h' and `main.c' that contain
+the string `hello' followed by the string `world'; this is because `.*'
+matches zero or more characters within a line.  *Note Regular
+Expressions::.  The `-i' option causes `grep' to ignore case, causing
+it to match the line `Hello, world!', which it would not otherwise
+match.  *Note Invoking::, for more details about how to invoke `grep'.
+   Here are some common questions and answers about `grep' usage.
+  1. How can I list just the names of matching files?
+          grep -l 'main' *.c
+     lists the names of all C files in the current directory whose
+     contents mention `main'.
+  2. How do I search directories recursively?
+          grep -r 'hello' /home/gigi
+     searches for `hello' in all files under the `/home/gigi' directory.
+     For more control over which files are searched, use `find',
+     `grep', and `xargs'.  For example, the following command searches
+     only C files:
+          find /home/gigi -name '*.c' -print0 | xargs -0r grep -H 'hello'
+     This differs from the command:
+          grep -rH 'hello' *.c
+     which merely looks for `hello' in all files in the current
+     directory whose names end in `.c'.  Here the `-r' is probably
+     unnecessary, as recursion occurs only in the unlikely event that
+     one of `.c' files is a directory.  The `find ...' command line
+     above is more similar to the command:
+          grep -rH --include='*.c' 'hello' /home/gigi
+  3. What if a pattern has a leading `-'?
+          grep -e '--cut here--' *
+     searches for all lines matching `--cut here--'.  Without `-e',
+     `grep' would attempt to parse `--cut here--' as a list of options.
+  4. Suppose I want to search for a whole word, not a part of a word?
+          grep -w 'hello' *
+     searches only for instances of `hello' that are entire words; it
+     does not match `Othello'.  For more control, use `\<' and `\>' to
+     match the start and end of words.  For example:
+          grep 'hello\>' *
+     searches only for words ending in `hello', so it matches the word
+     `Othello'.
+  5. How do I output context around the matching lines?
+          grep -C 2 'hello' *
+     prints two lines of context around each matching line.
+  6. How do I force `grep' to print the name of the file?
+     Append `/dev/null':
+          grep 'eli' /etc/passwd /dev/null
+     gets you:
+          /etc/passwd:eli:x:2098:1000:Eli Smith:/home/eli:/bin/bash
+     Alternatively, use `-H', which is a GNU extension:
+          grep -H 'eli' /etc/passwd
+  7. Why do people use strange regular expressions on `ps' output?
+          ps -ef | grep '[c]ron'
+     If the pattern had been written without the square brackets, it
+     would have matched not only the `ps' output line for `cron', but
+     also the `ps' output line for `grep'.  Note that on some platforms,
+     `ps' limits the output to the width of the screen; `grep' does not
+     have any limit on the length of a line except the available memory.
+  8. Why does `grep' report "Binary file matches"?
+     If `grep' listed all matching "lines" from a binary file, it would
+     probably generate output that is not useful, and it might even
+     muck up your display.  So GNU `grep' suppresses output from files
+     that appear to be binary files.  To force GNU `grep' to output
+     lines even from files that appear to be binary, use the `-a' or
+     `--binary-files=text' option.  To eliminate the "Binary file
+     matches" messages, use the `-I' or `--binary-files=without-match'
+     option.
+  9. Why doesn't `grep -lv' print non-matching file names?
+     `grep -lv' lists the names of all files containing one or more
+     lines that do not match.  To list the names of all files that
+     contain no matching lines, use the `-L' or `--files-without-match'
+     option.
+ 10. I can do OR with `|', but what about AND?
+          grep 'paul' /etc/motd | grep 'franc,ois'
+     finds all lines that contain both `paul' and `franc,ois'.
+ 11. How can I search in both standard input and in files?
+     Use the special file name `-':
+          cat /etc/passwd | grep 'alain' - /etc/motd
+ 12. How to express palindromes in a regular expression?
+     It can be done by using back-references; for example, a palindrome
+     of 4 characters can be written with a BRE:
+          grep -w -e '\(.\)\(.\).\2\1' file
+     It matches the word "radar" or "civic".
+     Guglielmo Bondioni proposed a single RE that finds all palindromes
+     up to 19 characters long using 9 subexpressions and
+     9 back-references:
+          grep -E -e 
'^(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?).?\9\8\7\6\5\4\3\2\1$' file
+     Note this is done by using GNU ERE extensions; it might not be
+     portable to other implementations of `grep'.
+ 13. Why is this back-reference failing?
+          echo 'ba' | grep -E '(a)\1|b\1'
+     This gives no output, because the first alternate `(a)\1' does not
+     match, as there is no `aa' in the input, so the `\1' in the second
+     alternate has nothing to refer back to, meaning it will never
+     match anything.  (The second alternate in this example can only
+     match if the first alternate has matched - making the second one
+     superfluous.)
+ 14. What do `grep', `fgrep', and `egrep' stand for?
+     The name `grep' comes from the way line editing was done on Unix.
+     For example, `ed' uses the following syntax to print a list of
+     matching lines on the screen:
+          global/regular expression/print
+          g/re/p
+     `fgrep' stands for Fixed `grep'; `egrep' stands for Extended
+     `grep'.
+5 Reporting bugs
+Email bug reports to <address@hidden>, a mailing list whose web page
+is `'.  The Savannah bug
+tracker for `grep' is located at
+5.1 Known Bugs
+Large repetition counts in the `{n,m}' construct may cause `grep' to
+use lots of memory.  In addition, certain other obscure regular
+expressions require exponential time and space, and may cause `grep' to
+run out of memory.
+   Back-references are very slow, and may require exponential time.
+6 Copying
+GNU grep is licensed under the GNU GPL, which makes it "free software".
+   The "free" in "free software" refers to liberty, not price. As some
+GNU project advocates like to point out, think of "free speech" rather
+than "free beer".  In short, you have the right (freedom) to run and
+change grep and distribute it to other people, and--if you want--charge
+money for doing either.  The important restriction is that you have to
+grant your recipients the same rights and impose the same restrictions.
+   This general method of licensing software is sometimes called "open
+source".  The GNU project prefers the term "free software" for reasons
+outlined at
+   This manual is free documentation in the same sense.  The
+documentation license is included below.  The license for the program
+is available with the source code, or at
+6.1 GNU Free Documentation License
+                     Version 1.3, 3 November 2008
+     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+     `'
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+     The purpose of this License is to make a manual, textbook, or other
+     functional and useful document "free" in the sense of freedom: to
+     assure everyone the effective freedom to copy and redistribute it,
+     with or without modifying it, either commercially or
+     noncommercially.  Secondarily, this License preserves for the
+     author and publisher a way to get credit for their work, while not
+     being considered responsible for modifications made by others.
+     This License is a kind of "copyleft", which means that derivative
+     works of the document must themselves be free in the same sense.
+     It complements the GNU General Public License, which is a copyleft
+     license designed for free software.
+     We have designed this License in order to use it for manuals for
+     free software, because free software needs free documentation: a
+     free program should come with manuals providing the same freedoms
+     that the software does.  But this License is not limited to
+     software manuals; it can be used for any textual work, regardless
+     of subject matter or whether it is published as a printed book.
+     We recommend this License principally for works whose purpose is
+     instruction or reference.
+     This License applies to any manual or other work, in any medium,
+     that contains a notice placed by the copyright holder saying it
+     can be distributed under the terms of this License.  Such a notice
+     grants a world-wide, royalty-free license, unlimited in duration,
+     to use that work under the conditions stated herein.  The
+     "Document", below, refers to any such manual or work.  Any member
+     of the public is a licensee, and is addressed as "you".  You
+     accept the license if you copy, modify or distribute the work in a
+     way requiring permission under copyright law.
+     A "Modified Version" of the Document means any work containing the
+     Document or a portion of it, either copied verbatim, or with
+     modifications and/or translated into another language.
+     A "Secondary Section" is a named appendix or a front-matter section
+     of the Document that deals exclusively with the relationship of the
+     publishers or authors of the Document to the Document's overall
+     subject (or to related matters) and contains nothing that could
+     fall directly within that overall subject.  (Thus, if the Document
+     is in part a textbook of mathematics, a Secondary Section may not
+     explain any mathematics.)  The relationship could be a matter of
+     historical connection with the subject or with related matters, or
+     of legal, commercial, philosophical, ethical or political position
+     regarding them.
+     The "Invariant Sections" are certain Secondary Sections whose
+     titles are designated, as being those of Invariant Sections, in
+     the notice that says that the Document is released under this
+     License.  If a section does not fit the above definition of
+     Secondary then it is not allowed to be designated as Invariant.
+     The Document may contain zero Invariant Sections.  If the Document
+     does not identify any Invariant Sections then there are none.
+     The "Cover Texts" are certain short passages of text that are
+     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+     that says that the Document is released under this License.  A
+     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+     be at most 25 words.
+     A "Transparent" copy of the Document means a machine-readable copy,
+     represented in a format whose specification is available to the
+     general public, that is suitable for revising the document
+     straightforwardly with generic text editors or (for images
+     composed of pixels) generic paint programs or (for drawings) some
+     widely available drawing editor, and that is suitable for input to
+     text formatters or for automatic translation to a variety of
+     formats suitable for input to text formatters.  A copy made in an
+     otherwise Transparent file format whose markup, or absence of
+     markup, has been arranged to thwart or discourage subsequent
+     modification by readers is not Transparent.  An image format is
+     not Transparent if used for any substantial amount of text.  A
+     copy that is not "Transparent" is called "Opaque".
+     Examples of suitable formats for Transparent copies include plain
+     ASCII without markup, Texinfo input format, LaTeX input format,
+     SGML or XML using a publicly available DTD, and
+     standard-conforming simple HTML, PostScript or PDF designed for
+     human modification.  Examples of transparent image formats include
+     PNG, XCF and JPG.  Opaque formats include proprietary formats that
+     can be read and edited only by proprietary word processors, SGML or
+     XML for which the DTD and/or processing tools are not generally
+     available, and the machine-generated HTML, PostScript or PDF
+     produced by some word processors for output purposes only.
+     The "Title Page" means, for a printed book, the title page itself,
+     plus such following pages as are needed to hold, legibly, the
+     material this License requires to appear in the title page.  For
+     works in formats which do not have any title page as such, "Title
+     Page" means the text near the most prominent appearance of the
+     work's title, preceding the beginning of the body of the text.
+     The "publisher" means any person or entity that distributes copies
+     of the Document to the public.
+     A section "Entitled XYZ" means a named subunit of the Document
+     whose title either is precisely XYZ or contains XYZ in parentheses
+     following text that translates XYZ in another language.  (Here XYZ
+     stands for a specific section name mentioned below, such as
+     "Acknowledgements", "Dedications", "Endorsements", or "History".)
+     To "Preserve the Title" of such a section when you modify the
+     Document means that it remains a section "Entitled XYZ" according
+     to this definition.
+     The Document may include Warranty Disclaimers next to the notice
+     which states that this License applies to the Document.  These
+     Warranty Disclaimers are considered to be included by reference in
+     this License, but only as regards disclaiming warranties: any other
+     implication that these Warranty Disclaimers may have is void and
+     has no effect on the meaning of this License.
+     You may copy and distribute the Document in any medium, either
+     commercially or noncommercially, provided that this License, the
+     copyright notices, and the license notice saying this License
+     applies to the Document are reproduced in all copies, and that you
+     add no other conditions whatsoever to those of this License.  You
+     may not use technical measures to obstruct or control the reading
+     or further copying of the copies you make or distribute.  However,
+     you may accept compensation in exchange for copies.  If you
+     distribute a large enough number of copies you must also follow
+     the conditions in section 3.
+     You may also lend copies, under the same conditions stated above,
+     and you may publicly display copies.
+     If you publish printed copies (or copies in media that commonly
+     have printed covers) of the Document, numbering more than 100, and
+     the Document's license notice requires Cover Texts, you must
+     enclose the copies in covers that carry, clearly and legibly, all
+     these Cover Texts: Front-Cover Texts on the front cover, and
+     Back-Cover Texts on the back cover.  Both covers must also clearly
+     and legibly identify you as the publisher of these copies.  The
+     front cover must present the full title with all words of the
+     title equally prominent and visible.  You may add other material
+     on the covers in addition.  Copying with changes limited to the
+     covers, as long as they preserve the title of the Document and
+     satisfy these conditions, can be treated as verbatim copying in
+     other respects.
+     If the required texts for either cover are too voluminous to fit
+     legibly, you should put the first ones listed (as many as fit
+     reasonably) on the actual cover, and continue the rest onto
+     adjacent pages.
+     If you publish or distribute Opaque copies of the Document
+     numbering more than 100, you must either include a
+     machine-readable Transparent copy along with each Opaque copy, or
+     state in or with each Opaque copy a computer-network location from
+     which the general network-using public has access to download
+     using public-standard network protocols a complete Transparent
+     copy of the Document, free of added material.  If you use the
+     latter option, you must take reasonably prudent steps, when you
+     begin distribution of Opaque copies in quantity, to ensure that
+     this Transparent copy will remain thus accessible at the stated
+     location until at least one year after the last time you
+     distribute an Opaque copy (directly or through your agents or
+     retailers) of that edition to the public.
+     It is requested, but not required, that you contact the authors of
+     the Document well before redistributing any large number of
+     copies, to give them a chance to provide you with an updated
+     version of the Document.
+     You may copy and distribute a Modified Version of the Document
+     under the conditions of sections 2 and 3 above, provided that you
+     release the Modified Version under precisely this License, with
+     the Modified Version filling the role of the Document, thus
+     licensing distribution and modification of the Modified Version to
+     whoever possesses a copy of it.  In addition, you must do these
+     things in the Modified Version:
+       A. Use in the Title Page (and on the covers, if any) a title
+          distinct from that of the Document, and from those of
+          previous versions (which should, if there were any, be listed
+          in the History section of the Document).  You may use the
+          same title as a previous version if the original publisher of
+          that version gives permission.
+       B. List on the Title Page, as authors, one or more persons or
+          entities responsible for authorship of the modifications in
+          the Modified Version, together with at least five of the
+          principal authors of the Document (all of its principal
+          authors, if it has fewer than five), unless they release you
+          from this requirement.
+       C. State on the Title page the name of the publisher of the
+          Modified Version, as the publisher.
+       D. Preserve all the copyright notices of the Document.
+       E. Add an appropriate copyright notice for your modifications
+          adjacent to the other copyright notices.
+       F. Include, immediately after the copyright notices, a license
+          notice giving the public permission to use the Modified
+          Version under the terms of this License, in the form shown in
+          the Addendum below.
+       G. Preserve in that license notice the full lists of Invariant
+          Sections and required Cover Texts given in the Document's
+          license notice.
+       H. Include an unaltered copy of this License.
+       I. Preserve the section Entitled "History", Preserve its Title,
+          and add to it an item stating at least the title, year, new
+          authors, and publisher of the Modified Version as given on
+          the Title Page.  If there is no section Entitled "History" in
+          the Document, create one stating the title, year, authors,
+          and publisher of the Document as given on its Title Page,
+          then add an item describing the Modified Version as stated in
+          the previous sentence.
+       J. Preserve the network location, if any, given in the Document
+          for public access to a Transparent copy of the Document, and
+          likewise the network locations given in the Document for
+          previous versions it was based on.  These may be placed in
+          the "History" section.  You may omit a network location for a
+          work that was published at least four years before the
+          Document itself, or if the original publisher of the version
+          it refers to gives permission.
+       K. For any section Entitled "Acknowledgements" or "Dedications",
+          Preserve the Title of the section, and preserve in the
+          section all the substance and tone of each of the contributor
+          acknowledgements and/or dedications given therein.
+       L. Preserve all the Invariant Sections of the Document,
+          unaltered in their text and in their titles.  Section numbers
+          or the equivalent are not considered part of the section
+          titles.
+       M. Delete any section Entitled "Endorsements".  Such a section
+          may not be included in the Modified Version.
+       N. Do not retitle any existing section to be Entitled
+          "Endorsements" or to conflict in title with any Invariant
+          Section.
+       O. Preserve any Warranty Disclaimers.
+     If the Modified Version includes new front-matter sections or
+     appendices that qualify as Secondary Sections and contain no
+     material copied from the Document, you may at your option
+     designate some or all of these sections as invariant.  To do this,
+     add their titles to the list of Invariant Sections in the Modified
+     Version's license notice.  These titles must be distinct from any
+     other section titles.
+     You may add a section Entitled "Endorsements", provided it contains
+     nothing but endorsements of your Modified Version by various
+     parties--for example, statements of peer review or that the text
+     has been approved by an organization as the authoritative
+     definition of a standard.
+     You may add a passage of up to five words as a Front-Cover Text,
+     and a passage of up to 25 words as a Back-Cover Text, to the end
+     of the list of Cover Texts in the Modified Version.  Only one
+     passage of Front-Cover Text and one of Back-Cover Text may be
+     added by (or through arrangements made by) any one entity.  If the
+     Document already includes a cover text for the same cover,
+     previously added by you or by arrangement made by the same entity
+     you are acting on behalf of, you may not add another; but you may
+     replace the old one, on explicit permission from the previous
+     publisher that added the old one.
+     The author(s) and publisher(s) of the Document do not by this
+     License give permission to use their names for publicity for or to
+     assert or imply endorsement of any Modified Version.
+     You may combine the Document with other documents released under
+     this License, under the terms defined in section 4 above for
+     modified versions, provided that you include in the combination
+     all of the Invariant Sections of all of the original documents,
+     unmodified, and list them all as Invariant Sections of your
+     combined work in its license notice, and that you preserve all
+     their Warranty Disclaimers.
+     The combined work need only contain one copy of this License, and
+     multiple identical Invariant Sections may be replaced with a single
+     copy.  If there are multiple Invariant Sections with the same name
+     but different contents, make the title of each such section unique
+     by adding at the end of it, in parentheses, the name of the
+     original author or publisher of that section if known, or else a
+     unique number.  Make the same adjustment to the section titles in
+     the list of Invariant Sections in the license notice of the
+     combined work.
+     In the combination, you must combine any sections Entitled
+     "History" in the various original documents, forming one section
+     Entitled "History"; likewise combine any sections Entitled
+     "Acknowledgements", and any sections Entitled "Dedications".  You
+     must delete all sections Entitled "Endorsements."
+     You may make a collection consisting of the Document and other
+     documents released under this License, and replace the individual
+     copies of this License in the various documents with a single copy
+     that is included in the collection, provided that you follow the
+     rules of this License for verbatim copying of each of the
+     documents in all other respects.
+     You may extract a single document from such a collection, and
+     distribute it individually under this License, provided you insert
+     a copy of this License into the extracted document, and follow
+     this License in all other respects regarding verbatim copying of
+     that document.
+     A compilation of the Document or its derivatives with other
+     separate and independent documents or works, in or on a volume of
+     a storage or distribution medium, is called an "aggregate" if the
+     copyright resulting from the compilation is not used to limit the
+     legal rights of the compilation's users beyond what the individual
+     works permit.  When the Document is included in an aggregate, this
+     License does not apply to the other works in the aggregate which
+     are not themselves derivative works of the Document.
+     If the Cover Text requirement of section 3 is applicable to these
+     copies of the Document, then if the Document is less than one half
+     of the entire aggregate, the Document's Cover Texts may be placed
+     on covers that bracket the Document within the aggregate, or the
+     electronic equivalent of covers if the Document is in electronic
+     form.  Otherwise they must appear on printed covers that bracket
+     the whole aggregate.
+     Translation is considered a kind of modification, so you may
+     distribute translations of the Document under the terms of section
+     4.  Replacing Invariant Sections with translations requires special
+     permission from their copyright holders, but you may include
+     translations of some or all Invariant Sections in addition to the
+     original versions of these Invariant Sections.  You may include a
+     translation of this License, and all the license notices in the
+     Document, and any Warranty Disclaimers, provided that you also
+     include the original English version of this License and the
+     original versions of those notices and disclaimers.  In case of a
+     disagreement between the translation and the original version of
+     this License or a notice or disclaimer, the original version will
+     prevail.
+     If a section in the Document is Entitled "Acknowledgements",
+     "Dedications", or "History", the requirement (section 4) to
+     Preserve its Title (section 1) will typically require changing the
+     actual title.
+     You may not copy, modify, sublicense, or distribute the Document
+     except as expressly provided under this License.  Any attempt
+     otherwise to copy, modify, sublicense, or distribute it is void,
+     and will automatically terminate your rights under this License.
+     However, if you cease all violation of this License, then your
+     license from a particular copyright holder is reinstated (a)
+     provisionally, unless and until the copyright holder explicitly
+     and finally terminates your license, and (b) permanently, if the
+     copyright holder fails to notify you of the violation by some
+     reasonable means prior to 60 days after the cessation.
+     Moreover, your license from a particular copyright holder is
+     reinstated permanently if the copyright holder notifies you of the
+     violation by some reasonable means, this is the first time you have
+     received notice of violation of this License (for any work) from
+     that copyright holder, and you cure the violation prior to 30 days
+     after your receipt of the notice.
+     Termination of your rights under this section does not terminate
+     the licenses of parties who have received copies or rights from
+     you under this License.  If your rights have been terminated and
+     not permanently reinstated, receipt of a copy of some or all of
+     the same material does not give you any rights to use it.
+     The Free Software Foundation may publish new, revised versions of
+     the GNU Free Documentation License from time to time.  Such new
+     versions will be similar in spirit to the present version, but may
+     differ in detail to address new problems or concerns.  See
+     `'.
+     Each version of the License is given a distinguishing version
+     number.  If the Document specifies that a particular numbered
+     version of this License "or any later version" applies to it, you
+     have the option of following the terms and conditions either of
+     that specified version or of any later version that has been
+     published (not as a draft) by the Free Software Foundation.  If
+     the Document does not specify a version number of this License,
+     you may choose any version ever published (not as a draft) by the
+     Free Software Foundation.  If the Document specifies that a proxy
+     can decide which future versions of this License can be used, that
+     proxy's public statement of acceptance of a version permanently
+     authorizes you to choose that version for the Document.
+     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+     World Wide Web server that publishes copyrightable works and also
+     provides prominent facilities for anybody to edit those works.  A
+     public wiki that anybody can edit is an example of such a server.
+     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+     site means any set of copyrightable works thus published on the MMC
+     site.
+     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+     license published by Creative Commons Corporation, a not-for-profit
+     corporation with a principal place of business in San Francisco,
+     California, as well as future copyleft versions of that license
+     published by that same organization.
+     "Incorporate" means to publish or republish a Document, in whole or
+     in part, as part of another Document.
+     An MMC is "eligible for relicensing" if it is licensed under this
+     License, and if all works that were first published under this
+     License somewhere other than this MMC, and subsequently
+     incorporated in whole or in part into the MMC, (1) had no cover
+     texts or invariant sections, and (2) were thus incorporated prior
+     to November 1, 2008.
+     The operator of an MMC Site may republish an MMC contained in the
+     site under CC-BY-SA on the same site at any time before August 1,
+     2009, provided the MMC is eligible for relicensing.
+ADDENDUM: How to use this License for your documents
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+       Copyright (C)  YEAR  YOUR NAME.
+       Permission is granted to copy, distribute and/or modify this document
+       under the terms of the GNU Free Documentation License, Version 1.3
+       or any later version published by the Free Software Foundation;
+       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+       Texts.  A copy of the license is included in the section entitled ``GNU
+       Free Documentation License''.
+   If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+         with the Invariant Sections being LIST THEIR TITLES, with
+         the Front-Cover Texts being LIST, and with the Back-Cover Texts
+         being LIST.
+   If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+*:                                             See 3.1.      (line  712)
++:                                             See 3.1.      (line  715)
+--after-context:                               See 2.1.5.    (line  322)
+--basic-regexp:                                See 2.4.      (line  654)
+--before-context:                              See 2.1.5.    (line  326)
+--binary:                                      See 2.1.7.    (line  429)
+--binary-files:                                See 2.1.6.    (line  354)
+--byte-offset:                                 See 2.1.4.    (line  251)
+--color:                                       See 2.1.3.    (line  158)
+--colour:                                      See 2.1.3.    (line  158)
+--context:                                     See 2.1.5.    (line  331)
+--count:                                       See 2.1.3.    (line  152)
+--devices:                                     See 2.1.6.    (line  368)
+--directories:                                 See 2.1.6.    (line  375)
+--exclude:                                     See 2.1.6.    (line  385)
+--exclude-dir:                                 See 2.1.6.    (line  394)
+--exclude-from:                                See 2.1.6.    (line  390)
+--extended-regexp:                             See 2.4.      (line  659)
+--file:                                        See 2.1.2.    (line  116)
+--files-with-matches:                          See 2.1.3.    (line  179)
+--files-without-match:                         See 2.1.3.    (line  173)
+--fixed-strings:                               See 2.4.      (line  664)
+--help:                                        See 2.1.1.    (line   96)
+--ignore-case:                                 See 2.1.2.    (line  123)
+--include:                                     See 2.1.6.    (line  402)
+--initial-tab:                                 See 2.1.4.    (line  282)
+--invert-match:                                See 2.1.2.    (line  129)
+--label:                                       See 2.1.4.    (line  269)
+--line-buffered:                               See 2.1.7.    (line  417)
+--line-number:                                 See 2.1.4.    (line  277)
+--line-regexp:                                 See 2.1.2.    (line  143)
+--max-count:                                   See 2.1.3.    (line  186)
+--mmap:                                        See 2.1.7.    (line  421)
+--no-filename:                                 See 2.1.4.    (line  264)
+--no-messages:                                 See 2.1.3.    (line  232)
+--null:                                        See 2.1.4.    (line  302)
+--null-data:                                   See 2.1.7.    (line  443)
+--only-matching:                               See 2.1.3.    (line  219)
+--perl-regexp:                                 See 2.4.      (line  670)
+--quiet:                                       See 2.1.3.    (line  225)
+--recursive:                                   See 2.1.6.    (line  408)
+--regexp=PATTERN:                              See 2.1.2.    (line  110)
+--silent:                                      See 2.1.3.    (line  225)
+--text:                                        See 2.1.6.    (line  350)
+--unix-byte-offsets:                           See 2.1.4.    (line  292)
+--version:                                     See 2.1.1.    (line  101)
+--with-filename:                               See 2.1.4.    (line  259)
+--word-regexp:                                 See 2.1.2.    (line  134)
+-a:                                            See 2.1.6.    (line  350)
+-A:                                            See 2.1.5.    (line  322)
+-B:                                            See 2.1.5.    (line  326)
+-b:                                            See 2.1.4.    (line  251)
+-C:                                            See 2.1.5.    (line  331)
+-c:                                            See 2.1.3.    (line  152)
+-d:                                            See 2.1.6.    (line  375)
+-D:                                            See 2.1.6.    (line  368)
+-E:                                            See 2.4.      (line  659)
+-e:                                            See 2.1.2.    (line  110)
+-F:                                            See 2.4.      (line  664)
+-f:                                            See 2.1.2.    (line  116)
+-G:                                            See 2.4.      (line  654)
+-h:                                            See 2.1.4.    (line  264)
+-H:                                            See 2.1.4.    (line  259)
+-i:                                            See 2.1.2.    (line  123)
+-l:                                            See 2.1.3.    (line  179)
+-L:                                            See 2.1.3.    (line  173)
+-m:                                            See 2.1.3.    (line  186)
+-n:                                            See 2.1.4.    (line  277)
+-NUM:                                          See 2.1.5.    (line  331)
+-o:                                            See 2.1.3.    (line  219)
+-P:                                            See 2.4.      (line  670)
+-q:                                            See 2.1.3.    (line  225)
+-r:                                            See 2.1.6.    (line  408)
+-s:                                            See 2.1.3.    (line  232)
+-T:                                            See 2.1.4.    (line  282)
+-U:                                            See 2.1.7.    (line  429)
+-u:                                            See 2.1.4.    (line  292)
+-v:                                            See 2.1.2.    (line  129)
+-V:                                            See 2.1.1.    (line  101)
+-w:                                            See 2.1.2.    (line  134)
+-x:                                            See 2.1.2.    (line  143)
+-y:                                            See 2.1.2.    (line  123)
+-z:                                            See 2.1.7.    (line  443)
+-Z:                                            See 2.1.4.    (line  302)
+.:                                             See 3.1.      (line  706)
+?:                                             See 3.1.      (line  709)
+_N_GNU_nonoption_argv_flags_ environment variable:See 2.2.   (line  621)
+after context:                                 See 2.1.5.    (line  322)
+alnum character class:                         See 3.2.      (line  769)
+alpha character class:                         See 3.2.      (line  772)
+alphabetic characters:                         See 3.2.      (line  772)
+alphanumeric characters:                       See 3.2.      (line  769)
+anchoring:                                     See 3.4.      (line  884)
+asterisk:                                      See 3.1.      (line  712)
+back-reference:                                See 3.5.      (line  890)
+backslash:                                     See 3.3.      (line  856)
+basic regular expressions:                     See 3.6.      (line  902)
+before context:                                See 2.1.5.    (line  326)
+binary files:                                  See 2.1.6.    (line  350)
+binary files, MS-DOS/MS-Windows:               See 2.1.7.    (line  429)
+blank character class:                         See 3.2.      (line  775)
+blank characters:                              See 3.2.      (line  775)
+bn GREP_COLORS capability:                     See 2.2.      (line  549)
+braces, first argument omitted:                See 3.1.      (line  724)
+braces, one argument:                          See 3.1.      (line  718)
+braces, second argument omitted:               See 3.1.      (line  721)
+braces, two arguments:                         See 3.1.      (line  727)
+bracket expression:                            See 3.2.      (line  746)
+Bugs, known:                                   See 5.1.      (line 1097)
+bugs, reporting:                               See 5.        (line 1089)
+byte offset:                                   See 2.1.4.    (line  251)
+byte offsets, on MS-DOS/MS-Windows:            See 2.1.4.    (line  292)
+case insensitive search:                       See 2.1.2.    (line  123)
+changing name of standard input:               See 2.1.4.    (line  269)
+character class:                               See 3.2.      (line  746)
+character classes:                             See 3.2.      (line  768)
+character type:                                See 2.2.      (line  591)
+classes of characters:                         See 3.2.      (line  768)
+cntrl character class:                         See 3.2.      (line  778)
+context:                                       See 2.1.5.    (line  331)
+context lines, after match:                    See 2.1.5.    (line  322)
+context lines, before match:                   See 2.1.5.    (line  326)
+control characters:                            See 3.2.      (line  778)
+copying:                                       See 6.        (line 1107)
+counting lines:                                See 2.1.3.    (line  152)
+cx GREP_COLORS capability:                     See 2.2.      (line  502)
+default options environment variable:          See 2.2.      (line  465)
+device search:                                 See 2.1.6.    (line  368)
+digit character class:                         See 3.2.      (line  783)
+digit characters:                              See 3.2.      (line  783)
+directory search:                              See 2.1.6.    (line  375)
+dot:                                           See 3.1.      (line  706)
+environment variables:                         See 2.2.      (line  464)
+exclude directories:                           See 2.1.6.    (line  394)
+exclude files:                                 See 2.1.6.    (line  385)
+exit status:                                   See 2.3.      (line  634)
+FAQ about grep usage:                          See 4.        (line  932)
+files which don't match:                       See 2.1.3.    (line  173)
+fn GREP_COLORS capability:                     See 2.2.      (line  539)
+graph character class:                         See 3.2.      (line  786)
+graphic characters:                            See 3.2.      (line  786)
+grep programs:                                 See 2.4.      (line  646)
+GREP_COLOR environment variable:               See 2.2.      (line  475)
+GREP_COLORS environment variable:              See 2.2.      (line  486)
+GREP_OPTIONS environment variable:             See 2.2.      (line  465)
+hexadecimal digits:                            See 3.2.      (line  808)
+highlight markers:                             See 2.2.      (line  475)
+highlight, color, colour:                      See 2.1.3.    (line  158)
+include files:                                 See 2.1.6.    (line  402)
+interval specifications:                       See 3.6.      (line  906)
+invert matching:                               See 2.1.2.    (line  129)
+LANG environment variable:                     See 2.2.      (line  591)
+language of messages:                          See 2.2.      (line  605)
+LC_ALL environment variable:                   See 2.2.      (line  591)
+LC_COLLATE environment variable:               See 2.2.      (line  591)
+LC_CTYPE environment variable:                 See 2.2.      (line  598)
+LC_MESSAGES environment variable:              See 2.2.      (line  605)
+line buffering:                                See 2.1.7.    (line  417)
+line numbering:                                See 2.1.4.    (line  277)
+ln GREP_COLORS capability:                     See 2.2.      (line  544)
+lower character class:                         See 3.2.      (line  789)
+lower-case letters:                            See 3.2.      (line  789)
+match expression at most M times:              See 3.1.      (line  724)
+match expression at most once:                 See 3.1.      (line  709)
+match expression from N to M times:            See 3.1.      (line  727)
+match expression N or more times:              See 3.1.      (line  721)
+match expression N times:                      See 3.1.      (line  718)
+match expression one or more times:            See 3.1.      (line  715)
+match expression zero or more times:           See 3.1.      (line  712)
+match the whole line:                          See 2.1.2.    (line  143)
+matching basic regular expressions:            See 2.4.      (line  654)
+matching extended regular expressions:         See 2.4.      (line  659)
+matching fixed strings:                        See 2.4.      (line  664)
+matching Perl regular expressions:             See 2.4.      (line  670)
+matching whole words:                          See 2.1.2.    (line  134)
+max-count:                                     See 2.1.3.    (line  186)
+mc GREP_COLORS capability:                     See 2.2.      (line  532)
+memory mapped input:                           See 2.1.7.    (line  421)
+message language:                              See 2.2.      (line  605)
+ms GREP_COLORS capability:                     See 2.2.      (line  525)
+MS-DOS/MS-Windows binary files:                See 2.1.7.    (line  429)
+MS-DOS/MS-Windows byte offsets:                See 2.1.4.    (line  292)
+mt GREP_COLORS capability:                     See 2.2.      (line  517)
+names of matching files:                       See 2.1.3.    (line  179)
+national language support:                     See 2.2.      (line  591)
+ne GREP_COLORS capability:                     See 2.2.      (line  561)
+NLS:                                           See 2.2.      (line  591)
+no filename prefix:                            See 2.1.4.    (line  264)
+numeric characters:                            See 3.2.      (line  783)
+only matching:                                 See 2.1.3.    (line  219)
+palindromes:                                   See 4.        (line 1044)
+pattern from file:                             See 2.1.2.    (line  116)
+pattern list:                                  See 2.1.2.    (line  110)
+period:                                        See 3.1.      (line  706)
+plus sign:                                     See 3.1.      (line  715)
+POSIXLY_CORRECT environment variable:          See 2.2.      (line  610)
+print character class:                         See 3.2.      (line  793)
+print non-matching lines:                      See 2.1.2.    (line  129)
+printable characters:                          See 3.2.      (line  793)
+punct character class:                         See 3.2.      (line  796)
+punctuation characters:                        See 3.2.      (line  796)
+question mark:                                 See 3.1.      (line  709)
+quiet, silent:                                 See 2.1.3.    (line  225)
+range expression:                              See 3.2.      (line  752)
+recursive search:                              See 2.1.6.    (line  408)
+regular expressions:                           See 3.        (line  684)
+return status:                                 See 2.3.      (line  634)
+rv GREP_COLORS capability:                     See 2.2.      (line  511)
+searching directory trees:                     See 2.1.6.    (line  385)
+searching for a pattern:                       See 1.        (line   55)
+sl GREP_COLORS capability:                     See 2.2.      (line  494)
+space character class:                         See 3.2.      (line  800)
+space characters:                              See 3.2.      (line  800)
+subexpression:                                 See 3.5.      (line  890)
+suppress binary data:                          See 2.1.6.    (line  350)
+suppress error messages:                       See 2.1.3.    (line  232)
+tab-aligned content lines:                     See 2.1.4.    (line  282)
+translation of message language:               See 2.2.      (line  605)
+upper character class:                         See 3.2.      (line  804)
+upper-case letters:                            See 3.2.      (line  804)
+usage summary, printing:                       See 2.1.1.    (line   96)
+usage, examples:                               See 4.        (line  921)
+using grep, Q&A:                               See 4.        (line  932)
+variants of gerp:                              See 2.4.      (line  646)
+version, printing:                             See 2.1.1.    (line  101)
+whitespace characters:                         See 3.2.      (line  800)
+with filename prefix:                          See 2.1.4.    (line  259)
+xdigit character class:                        See 3.2.      (line  808)
+xdigit class:                                  See 3.2.      (line  808)
+zero-terminated file names:                    See 2.1.4.    (line  302)
+zero-terminated lines:                         See 2.1.7.    (line  443)
+{,M}:                                          See 3.1.      (line  724)
+{N,M}:                                         See 3.1.      (line  727)
+{N,}:                                          See 3.1.      (line  721)
+{N}:                                           See 3.1.      (line  718)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]