| 1 | This is grep.info, produced by makeinfo version 4.13 from grep.texi.
|
|---|
| 2 |
|
|---|
| 3 | This manual is for `grep', a pattern matching engine.
|
|---|
| 4 |
|
|---|
| 5 | Copyright (C) 1999-2002, 2005, 2008-2012 Free Software Foundation,
|
|---|
| 6 | Inc.
|
|---|
| 7 |
|
|---|
| 8 | Permission is granted to copy, distribute and/or modify this
|
|---|
| 9 | document under the terms of the GNU Free Documentation License,
|
|---|
| 10 | Version 1.3 or any later version published by the Free Software
|
|---|
| 11 | Foundation; with no Invariant Sections, with no Front-Cover Texts,
|
|---|
| 12 | and with no Back-Cover Texts. A copy of the license is included
|
|---|
| 13 | in the section entitled "GNU Free Documentation License".
|
|---|
| 14 |
|
|---|
| 15 | INFO-DIR-SECTION Text creation and manipulation
|
|---|
| 16 | START-INFO-DIR-ENTRY
|
|---|
| 17 | * grep: (grep). Print lines matching a pattern.
|
|---|
| 18 | END-INFO-DIR-ENTRY
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 | File: grep.info, Node: Top, Next: Introduction, Up: (dir)
|
|---|
| 22 |
|
|---|
| 23 | grep
|
|---|
| 24 | ****
|
|---|
| 25 |
|
|---|
| 26 | `grep' prints lines that contain a match for a pattern.
|
|---|
| 27 |
|
|---|
| 28 | This manual is for version 2.12 of GNU Grep.
|
|---|
| 29 |
|
|---|
| 30 | This manual is for `grep', a pattern matching engine.
|
|---|
| 31 |
|
|---|
| 32 | Copyright (C) 1999-2002, 2005, 2008-2012 Free Software Foundation,
|
|---|
| 33 | Inc.
|
|---|
| 34 |
|
|---|
| 35 | Permission is granted to copy, distribute and/or modify this
|
|---|
| 36 | document under the terms of the GNU Free Documentation License,
|
|---|
| 37 | Version 1.3 or any later version published by the Free Software
|
|---|
| 38 | Foundation; with no Invariant Sections, with no Front-Cover Texts,
|
|---|
| 39 | and with no Back-Cover Texts. A copy of the license is included
|
|---|
| 40 | in the section entitled "GNU Free Documentation License".
|
|---|
| 41 |
|
|---|
| 42 | * Menu:
|
|---|
| 43 |
|
|---|
| 44 | * Introduction:: Introduction.
|
|---|
| 45 | * Invoking:: Command-line options, environment, exit status.
|
|---|
| 46 | * Regular Expressions:: Regular Expressions.
|
|---|
| 47 | * Usage:: Examples.
|
|---|
| 48 | * Reporting Bugs:: Reporting Bugs.
|
|---|
| 49 | * Copying:: License terms for this manual.
|
|---|
| 50 | * Index:: Combined index.
|
|---|
| 51 |
|
|---|
| 52 |
|
|---|
| 53 | File: grep.info, Node: Introduction, Next: Invoking, Prev: Top, Up: Top
|
|---|
| 54 |
|
|---|
| 55 | 1 Introduction
|
|---|
| 56 | **************
|
|---|
| 57 |
|
|---|
| 58 | `grep' searches input files for lines containing a match to a given
|
|---|
| 59 | pattern list. When it finds a match in a line, it copies the line to
|
|---|
| 60 | standard output (by default), or produces whatever other sort of output
|
|---|
| 61 | you have requested with options.
|
|---|
| 62 |
|
|---|
| 63 | Though `grep' expects to do the matching on text, it has no limits
|
|---|
| 64 | on input line length other than available memory, and it can match
|
|---|
| 65 | arbitrary characters within a line. If the final byte of an input file
|
|---|
| 66 | is not a newline, `grep' silently supplies one. Since newline is also
|
|---|
| 67 | a separator for the list of patterns, there is no way to match newline
|
|---|
| 68 | characters in a text.
|
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 | File: grep.info, Node: Invoking, Next: Regular Expressions, Prev: Introduction, Up: Top
|
|---|
| 72 |
|
|---|
| 73 | 2 Invoking `grep'
|
|---|
| 74 | *****************
|
|---|
| 75 |
|
|---|
| 76 | The general synopsis of the `grep' command line is
|
|---|
| 77 |
|
|---|
| 78 | grep OPTIONS PATTERN INPUT_FILE_NAMES
|
|---|
| 79 |
|
|---|
| 80 | There can be zero or more OPTIONS. PATTERN will only be seen as such
|
|---|
| 81 | (and not as an INPUT_FILE_NAME) if it wasn't already specified within
|
|---|
| 82 | OPTIONS (by using the `-e PATTERN' or `-f FILE' options). There can be
|
|---|
| 83 | zero or more INPUT_FILE_NAMES.
|
|---|
| 84 |
|
|---|
| 85 | * Menu:
|
|---|
| 86 |
|
|---|
| 87 | * Command-line Options:: Short and long names, grouped by category.
|
|---|
| 88 | * Environment Variables:: POSIX, GNU generic, and GNU grep specific.
|
|---|
| 89 | * Exit Status:: Exit status returned by `grep'.
|
|---|
| 90 | * grep Programs:: `grep' programs.
|
|---|
| 91 |
|
|---|
| 92 |
|
|---|
| 93 | File: grep.info, Node: Command-line Options, Next: Environment Variables, Up: Invoking
|
|---|
| 94 |
|
|---|
| 95 | 2.1 Command-line Options
|
|---|
| 96 | ========================
|
|---|
| 97 |
|
|---|
| 98 | `grep' comes with a rich set of options: some from POSIX and some being
|
|---|
| 99 | GNU extensions. Long option names are always a GNU extension, even for
|
|---|
| 100 | options that are from POSIX specifications. Options that are specified
|
|---|
| 101 | by POSIX, under their short names, are explicitly marked as such to
|
|---|
| 102 | facilitate POSIX-portable programming. A few option names are provided
|
|---|
| 103 | for compatibility with older or more exotic implementations.
|
|---|
| 104 |
|
|---|
| 105 | * Menu:
|
|---|
| 106 |
|
|---|
| 107 | * Generic Program Information::
|
|---|
| 108 | * Matching Control::
|
|---|
| 109 | * General Output Control::
|
|---|
| 110 | * Output Line Prefix Control::
|
|---|
| 111 | * Context Line Control::
|
|---|
| 112 | * File and Directory Selection::
|
|---|
| 113 | * Other Options::
|
|---|
| 114 |
|
|---|
| 115 | Several additional options control which variant of the `grep'
|
|---|
| 116 | matching engine is used. *Note grep Programs::.
|
|---|
| 117 |
|
|---|
| 118 |
|
|---|
| 119 | File: grep.info, Node: Generic Program Information, Next: Matching Control, Up: Command-line Options
|
|---|
| 120 |
|
|---|
| 121 | 2.1.1 Generic Program Information
|
|---|
| 122 | ---------------------------------
|
|---|
| 123 |
|
|---|
| 124 | `--help'
|
|---|
| 125 | Print a usage message briefly summarizing the command-line options
|
|---|
| 126 | and the bug-reporting address, then exit.
|
|---|
| 127 |
|
|---|
| 128 | `-V'
|
|---|
| 129 | `--version'
|
|---|
| 130 | Print the version number of `grep' to the standard output stream.
|
|---|
| 131 | This version number should be included in all bug reports.
|
|---|
| 132 |
|
|---|
| 133 |
|
|---|
| 134 |
|
|---|
| 135 | File: grep.info, Node: Matching Control, Next: General Output Control, Prev: Generic Program Information, Up: Command-line Options
|
|---|
| 136 |
|
|---|
| 137 | 2.1.2 Matching Control
|
|---|
| 138 | ----------------------
|
|---|
| 139 |
|
|---|
| 140 | `-e PATTERN'
|
|---|
| 141 | `--regexp=PATTERN'
|
|---|
| 142 | Use PATTERN as the pattern. This can be used to specify multiple
|
|---|
| 143 | search patterns, or to protect a pattern beginning with a `-'.
|
|---|
| 144 | (`-e' is specified by POSIX.)
|
|---|
| 145 |
|
|---|
| 146 | `-f FILE'
|
|---|
| 147 | `--file=FILE'
|
|---|
| 148 | Obtain patterns from FILE, one per line. The empty file contains
|
|---|
| 149 | zero patterns, and therefore matches nothing. (`-f' is specified
|
|---|
| 150 | by POSIX.)
|
|---|
| 151 |
|
|---|
| 152 | `-i'
|
|---|
| 153 | `-y'
|
|---|
| 154 | `--ignore-case'
|
|---|
| 155 | Ignore case distinctions in both the pattern and the input files.
|
|---|
| 156 | `-y' is an obsolete synonym that is provided for compatibility.
|
|---|
| 157 | (`-i' is specified by POSIX.)
|
|---|
| 158 |
|
|---|
| 159 | `-v'
|
|---|
| 160 | `--invert-match'
|
|---|
| 161 | Invert the sense of matching, to select non-matching lines. (`-v'
|
|---|
| 162 | is specified by POSIX.)
|
|---|
| 163 |
|
|---|
| 164 | `-w'
|
|---|
| 165 | `--word-regexp'
|
|---|
| 166 | Select only those lines containing matches that form whole words.
|
|---|
| 167 | The test is that the matching substring must either be at the
|
|---|
| 168 | beginning of the line, or preceded by a non-word constituent
|
|---|
| 169 | character. Similarly, it must be either at the end of the line or
|
|---|
| 170 | followed by a non-word constituent character. Word-constituent
|
|---|
| 171 | characters are letters, digits, and the underscore.
|
|---|
| 172 |
|
|---|
| 173 | `-x'
|
|---|
| 174 | `--line-regexp'
|
|---|
| 175 | Select only those matches that exactly match the whole line.
|
|---|
| 176 | (`-x' is specified by POSIX.)
|
|---|
| 177 |
|
|---|
| 178 |
|
|---|
| 179 |
|
|---|
| 180 | File: grep.info, Node: General Output Control, Next: Output Line Prefix Control, Prev: Matching Control, Up: Command-line Options
|
|---|
| 181 |
|
|---|
| 182 | 2.1.3 General Output Control
|
|---|
| 183 | ----------------------------
|
|---|
| 184 |
|
|---|
| 185 | `-c'
|
|---|
| 186 | `--count'
|
|---|
| 187 | Suppress normal output; instead print a count of matching lines
|
|---|
| 188 | for each input file. With the `-v' (`--invert-match') option,
|
|---|
| 189 | count non-matching lines. (`-c' is specified by POSIX.)
|
|---|
| 190 |
|
|---|
| 191 | `--color[=WHEN]'
|
|---|
| 192 | `--colour[=WHEN]'
|
|---|
| 193 | Surround the matched (non-empty) strings, matching lines, context
|
|---|
| 194 | lines, file names, line numbers, byte offsets, and separators (for
|
|---|
| 195 | fields and groups of context lines) with escape sequences to
|
|---|
| 196 | display them in color on the terminal. The colors are defined by
|
|---|
| 197 | the environment variable `GREP_COLORS' and default to
|
|---|
| 198 | `ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36' for bold red
|
|---|
| 199 | matched text, magenta file names, green line numbers, green byte
|
|---|
| 200 | offsets, cyan separators, and default terminal colors otherwise.
|
|---|
| 201 | The deprecated environment variable `GREP_COLOR' is still
|
|---|
| 202 | supported, but its setting does not have priority; it defaults to
|
|---|
| 203 | `01;31' (bold red) which only covers the color for matched text.
|
|---|
| 204 | WHEN is `never', `always', or `auto'.
|
|---|
| 205 |
|
|---|
| 206 | `-L'
|
|---|
| 207 | `--files-without-match'
|
|---|
| 208 | Suppress normal output; instead print the name of each input file
|
|---|
| 209 | from which no output would normally have been printed. The
|
|---|
| 210 | scanning of each file stops on the first match.
|
|---|
| 211 |
|
|---|
| 212 | `-l'
|
|---|
| 213 | `--files-with-matches'
|
|---|
| 214 | Suppress normal output; instead print the name of each input file
|
|---|
| 215 | from which output would normally have been printed. The scanning
|
|---|
| 216 | of each file stops on the first match. (`-l' is specified by
|
|---|
| 217 | POSIX.)
|
|---|
| 218 |
|
|---|
| 219 | `-m NUM'
|
|---|
| 220 | `--max-count=NUM'
|
|---|
| 221 | Stop reading a file after NUM matching lines. If the input is
|
|---|
| 222 | standard input from a regular file, and NUM matching lines are
|
|---|
| 223 | output, `grep' ensures that the standard input is positioned just
|
|---|
| 224 | after the last matching line before exiting, regardless of the
|
|---|
| 225 | presence of trailing context lines. This enables a calling
|
|---|
| 226 | process to resume a search. For example, the following shell
|
|---|
| 227 | script makes use of it:
|
|---|
| 228 |
|
|---|
| 229 | while grep -m 1 PATTERN
|
|---|
| 230 | do
|
|---|
| 231 | echo xxxx
|
|---|
| 232 | done < FILE
|
|---|
| 233 |
|
|---|
| 234 | But the following probably will not work because a pipe is not a
|
|---|
| 235 | regular file:
|
|---|
| 236 |
|
|---|
| 237 | # This probably will not work.
|
|---|
| 238 | cat FILE |
|
|---|
| 239 | while grep -m 1 PATTERN
|
|---|
| 240 | do
|
|---|
| 241 | echo xxxx
|
|---|
| 242 | done
|
|---|
| 243 |
|
|---|
| 244 | When `grep' stops after NUM matching lines, it outputs any
|
|---|
| 245 | trailing context lines. Since context does not include matching
|
|---|
| 246 | lines, `grep' will stop when it encounters another matching line.
|
|---|
| 247 | When the `-c' or `--count' option is also used, `grep' does not
|
|---|
| 248 | output a count greater than NUM. When the `-v' or
|
|---|
| 249 | `--invert-match' option is also used, `grep' stops after
|
|---|
| 250 | outputting NUM non-matching lines.
|
|---|
| 251 |
|
|---|
| 252 | `-o'
|
|---|
| 253 | `--only-matching'
|
|---|
| 254 | Print only the matched (non-empty) parts of matching lines, with
|
|---|
| 255 | each such part on a separate output line.
|
|---|
| 256 |
|
|---|
| 257 | `-q'
|
|---|
| 258 | `--quiet'
|
|---|
| 259 | `--silent'
|
|---|
| 260 | Quiet; do not write anything to standard output. Exit immediately
|
|---|
| 261 | with zero status if any match is found, even if an error was
|
|---|
| 262 | detected. Also see the `-s' or `--no-messages' option. (`-q' is
|
|---|
| 263 | specified by POSIX.)
|
|---|
| 264 |
|
|---|
| 265 | `-s'
|
|---|
| 266 | `--no-messages'
|
|---|
| 267 | Suppress error messages about nonexistent or unreadable files.
|
|---|
| 268 | Portability note: unlike GNU `grep', 7th Edition Unix `grep' did
|
|---|
| 269 | not conform to POSIX, because it lacked `-q' and its `-s' option
|
|---|
| 270 | behaved like GNU `grep''s `-q' option.(1) USG-style `grep' also
|
|---|
| 271 | lacked `-q' but its `-s' option behaved like GNU `grep''s.
|
|---|
| 272 | Portable shell scripts should avoid both `-q' and `-s' and should
|
|---|
| 273 | redirect standard and error output to `/dev/null' instead. (`-s'
|
|---|
| 274 | is specified by POSIX.)
|
|---|
| 275 |
|
|---|
| 276 |
|
|---|
| 277 | ---------- Footnotes ----------
|
|---|
| 278 |
|
|---|
| 279 | (1) Of course, 7th Edition Unix predated POSIX by several years!
|
|---|
| 280 |
|
|---|
| 281 |
|
|---|
| 282 | File: grep.info, Node: Output Line Prefix Control, Next: Context Line Control, Prev: General Output Control, Up: Command-line Options
|
|---|
| 283 |
|
|---|
| 284 | 2.1.4 Output Line Prefix Control
|
|---|
| 285 | --------------------------------
|
|---|
| 286 |
|
|---|
| 287 | When several prefix fields are to be output, the order is always file
|
|---|
| 288 | name, line number, and byte offset, regardless of the order in which
|
|---|
| 289 | these options were specified.
|
|---|
| 290 |
|
|---|
| 291 | `-b'
|
|---|
| 292 | `--byte-offset'
|
|---|
| 293 | Print the 0-based byte offset within the input file before each
|
|---|
| 294 | line of output. If `-o' (`--only-matching') is specified, print
|
|---|
| 295 | the offset of the matching part itself. When `grep' runs on
|
|---|
| 296 | MS-DOS or MS-Windows, the printed byte offsets depend on whether
|
|---|
| 297 | the `-u' (`--unix-byte-offsets') option is used; see below.
|
|---|
| 298 |
|
|---|
| 299 | `-H'
|
|---|
| 300 | `--with-filename'
|
|---|
| 301 | Print the file name for each match. This is the default when
|
|---|
| 302 | there is more than one file to search.
|
|---|
| 303 |
|
|---|
| 304 | `-h'
|
|---|
| 305 | `--no-filename'
|
|---|
| 306 | Suppress the prefixing of file names on output. This is the
|
|---|
| 307 | default when there is only one file (or only standard input) to
|
|---|
| 308 | search.
|
|---|
| 309 |
|
|---|
| 310 | `--label=LABEL'
|
|---|
| 311 | Display input actually coming from standard input as input coming
|
|---|
| 312 | from file LABEL. This is especially useful when implementing
|
|---|
| 313 | tools like `zgrep'; e.g.:
|
|---|
| 314 |
|
|---|
| 315 | gzip -cd foo.gz | grep --label=foo -H something
|
|---|
| 316 |
|
|---|
| 317 | `-n'
|
|---|
| 318 | `--line-number'
|
|---|
| 319 | Prefix each line of output with the 1-based line number within its
|
|---|
| 320 | input file. (`-n' is specified by POSIX.)
|
|---|
| 321 |
|
|---|
| 322 | `-T'
|
|---|
| 323 | `--initial-tab'
|
|---|
| 324 | Make sure that the first character of actual line content lies on
|
|---|
| 325 | a tab stop, so that the alignment of tabs looks normal. This is
|
|---|
| 326 | useful with options that prefix their output to the actual content:
|
|---|
| 327 | `-H', `-n', and `-b'. In order to improve the probability that
|
|---|
| 328 | lines from a single file will all start at the same column, this
|
|---|
| 329 | also causes the line number and byte offset (if present) to be
|
|---|
| 330 | printed in a minimum-size field width.
|
|---|
| 331 |
|
|---|
| 332 | `-u'
|
|---|
| 333 | `--unix-byte-offsets'
|
|---|
| 334 | Report Unix-style byte offsets. This option causes `grep' to
|
|---|
| 335 | report byte offsets as if the file were a Unix-style text file,
|
|---|
| 336 | i.e., the byte offsets ignore the `CR' characters that were
|
|---|
| 337 | stripped. This will produce results identical to running `grep'
|
|---|
| 338 | on a Unix machine. This option has no effect unless the `-b'
|
|---|
| 339 | option is also used; it has no effect on platforms other than
|
|---|
| 340 | MS-DOS and MS-Windows.
|
|---|
| 341 |
|
|---|
| 342 | `-Z'
|
|---|
| 343 | `--null'
|
|---|
| 344 | Output a zero byte (the ASCII `NUL' character) instead of the
|
|---|
| 345 | character that normally follows a file name. For example, `grep
|
|---|
| 346 | -lZ' outputs a zero byte after each file name instead of the usual
|
|---|
| 347 | newline. This option makes the output unambiguous, even in the
|
|---|
| 348 | presence of file names containing unusual characters like newlines.
|
|---|
| 349 | This option can be used with commands like `find -print0', `perl
|
|---|
| 350 | -0', `sort -z', and `xargs -0' to process arbitrary file names,
|
|---|
| 351 | even those that contain newline characters.
|
|---|
| 352 |
|
|---|
| 353 |
|
|---|
| 354 |
|
|---|
| 355 | File: grep.info, Node: Context Line Control, Next: File and Directory Selection, Prev: Output Line Prefix Control, Up: Command-line Options
|
|---|
| 356 |
|
|---|
| 357 | 2.1.5 Context Line Control
|
|---|
| 358 | --------------------------
|
|---|
| 359 |
|
|---|
| 360 | Regardless of how these options are set, `grep' will never print any
|
|---|
| 361 | given line more than once. If the `-o' (`--only-matching') option is
|
|---|
| 362 | specified, these options have no effect and a warning is given upon
|
|---|
| 363 | their use.
|
|---|
| 364 |
|
|---|
| 365 | `-A NUM'
|
|---|
| 366 | `--after-context=NUM'
|
|---|
| 367 | Print NUM lines of trailing context after matching lines.
|
|---|
| 368 |
|
|---|
| 369 | `-B NUM'
|
|---|
| 370 | `--before-context=NUM'
|
|---|
| 371 | Print NUM lines of leading context before matching lines.
|
|---|
| 372 |
|
|---|
| 373 | `-C NUM'
|
|---|
| 374 | `-NUM'
|
|---|
| 375 | `--context=NUM'
|
|---|
| 376 | Print NUM lines of leading and trailing output context.
|
|---|
| 377 |
|
|---|
| 378 | `--group-separator=STRING'
|
|---|
| 379 | When `-A', `-B' or `-C' are in use, print STRING instead of `--'
|
|---|
| 380 | around disjoint groups of lines.
|
|---|
| 381 |
|
|---|
| 382 | `--no-group-separator'
|
|---|
| 383 | When `-A', `-B' or `-C' are in use, print disjoint groups of lines
|
|---|
| 384 | adjacent to each other.
|
|---|
| 385 |
|
|---|
| 386 |
|
|---|
| 387 | Here are some points about how `grep' chooses the separator to print
|
|---|
| 388 | between prefix fields and line content:
|
|---|
| 389 |
|
|---|
| 390 | * Matching lines normally use `:' as a separator between prefix
|
|---|
| 391 | fields and actual line content.
|
|---|
| 392 |
|
|---|
| 393 | * Context (i.e., non-matching) lines use `-' instead.
|
|---|
| 394 |
|
|---|
| 395 | * When no context is specified, matching lines are simply output one
|
|---|
| 396 | right after another.
|
|---|
| 397 |
|
|---|
| 398 | * When nonzero context is specified, lines that are adjacent in the
|
|---|
| 399 | input form a group and are output one right after another, while a
|
|---|
| 400 | separator appears by default between disjoint groups on a line of
|
|---|
| 401 | its own and without any prefix.
|
|---|
| 402 |
|
|---|
| 403 | * The default separator is `--', however whether to include it and
|
|---|
| 404 | its appearance can be changed with the options above.
|
|---|
| 405 |
|
|---|
| 406 | * Each group may contain several matching lines when they are close
|
|---|
| 407 | enough to each other that two otherwise adjacent but divided
|
|---|
| 408 | groups connect and can just merge into a single contiguous one.
|
|---|
| 409 |
|
|---|
| 410 |
|
|---|
| 411 | File: grep.info, Node: File and Directory Selection, Next: Other Options, Prev: Context Line Control, Up: Command-line Options
|
|---|
| 412 |
|
|---|
| 413 | 2.1.6 File and Directory Selection
|
|---|
| 414 | ----------------------------------
|
|---|
| 415 |
|
|---|
| 416 | `-a'
|
|---|
| 417 | `--text'
|
|---|
| 418 | Process a binary file as if it were text; this is equivalent to
|
|---|
| 419 | the `--binary-files=text' option.
|
|---|
| 420 |
|
|---|
| 421 | `--binary-files=TYPE'
|
|---|
| 422 | If the first few bytes of a file indicate that the file contains
|
|---|
| 423 | binary data, assume that the file is of type TYPE. By default,
|
|---|
| 424 | TYPE is `binary', and `grep' normally outputs either a one-line
|
|---|
| 425 | message saying that a binary file matches, or no message if there
|
|---|
| 426 | is no match.
|
|---|
| 427 |
|
|---|
| 428 | If TYPE is `without-match', `grep' assumes that a binary file does
|
|---|
| 429 | not match; this is equivalent to the `-I' option.
|
|---|
| 430 |
|
|---|
| 431 | If TYPE is `text', `grep' processes a binary file as if it were
|
|---|
| 432 | text; this is equivalent to the `-a' option.
|
|---|
| 433 |
|
|---|
| 434 | _Warning:_ `--binary-files=text' might output binary garbage,
|
|---|
| 435 | which can have nasty side effects if the output is a terminal and
|
|---|
| 436 | if the terminal driver interprets some of it as commands.
|
|---|
| 437 |
|
|---|
| 438 | `-D ACTION'
|
|---|
| 439 | `--devices=ACTION'
|
|---|
| 440 | If an input file is a device, FIFO, or socket, use ACTION to
|
|---|
| 441 | process it. If ACTION is `read', all devices are read just as if
|
|---|
| 442 | they were ordinary files. If ACTION is `skip', devices, FIFOs,
|
|---|
| 443 | and sockets are silently skipped. By default, devices are read if
|
|---|
| 444 | they are on the command line or if the `-R'
|
|---|
| 445 | (`--dereference-recursive') option is used, and are skipped if
|
|---|
| 446 | they are encountered recursively and the `-r' (`--recursive')
|
|---|
| 447 | option is used. This option has no effect on a file that is read
|
|---|
| 448 | via standard input.
|
|---|
| 449 |
|
|---|
| 450 | `-d ACTION'
|
|---|
| 451 | `--directories=ACTION'
|
|---|
| 452 | If an input file is a directory, use ACTION to process it. By
|
|---|
| 453 | default, ACTION is `read', which means that directories are read
|
|---|
| 454 | just as if they were ordinary files (some operating systems and
|
|---|
| 455 | file systems disallow this, and will cause `grep' to print error
|
|---|
| 456 | messages for every directory or silently skip them). If ACTION is
|
|---|
| 457 | `skip', directories are silently skipped. If ACTION is `recurse',
|
|---|
| 458 | `grep' reads all files under each directory, recursively,
|
|---|
| 459 | following command-line symbolic links and skipping other symlinks;
|
|---|
| 460 | this is equivalent to the `-r' option.
|
|---|
| 461 |
|
|---|
| 462 | `--exclude=GLOB'
|
|---|
| 463 | Skip files whose base name matches GLOB (using wildcard matching).
|
|---|
| 464 | A file-name glob can use `*', `?', and `['...`]' as wildcards, and
|
|---|
| 465 | `\' to quote a wildcard or backslash character literally.
|
|---|
| 466 |
|
|---|
| 467 | `--exclude-from=FILE'
|
|---|
| 468 | Skip files whose base name matches any of the file-name globs read
|
|---|
| 469 | from FILE (using wildcard matching as described under `--exclude').
|
|---|
| 470 |
|
|---|
| 471 | `--exclude-dir=DIR'
|
|---|
| 472 | Exclude directories matching the pattern DIR from recursive
|
|---|
| 473 | directory searches.
|
|---|
| 474 |
|
|---|
| 475 | `-I'
|
|---|
| 476 | Process a binary file as if it did not contain matching data; this
|
|---|
| 477 | is equivalent to the `--binary-files=without-match' option.
|
|---|
| 478 |
|
|---|
| 479 | `--include=GLOB'
|
|---|
| 480 | Search only files whose base name matches GLOB (using wildcard
|
|---|
| 481 | matching as described under `--exclude').
|
|---|
| 482 |
|
|---|
| 483 | `-r'
|
|---|
| 484 | `--recursive'
|
|---|
| 485 | For each directory operand, read and process all files in that
|
|---|
| 486 | directory, recursively. Follow symbolic links on the command
|
|---|
| 487 | line, but skip symlinks that are encountered recursively. This is
|
|---|
| 488 | the same as the `--directories=recurse' option.
|
|---|
| 489 |
|
|---|
| 490 | `-R'
|
|---|
| 491 | `--dereference-recursive'
|
|---|
| 492 | For each directory operand, read and process all files in that
|
|---|
| 493 | directory, recursively, following all symbolic links.
|
|---|
| 494 |
|
|---|
| 495 |
|
|---|
| 496 |
|
|---|
| 497 | File: grep.info, Node: Other Options, Prev: File and Directory Selection, Up: Command-line Options
|
|---|
| 498 |
|
|---|
| 499 | 2.1.7 Other Options
|
|---|
| 500 | -------------------
|
|---|
| 501 |
|
|---|
| 502 | `--line-buffered'
|
|---|
| 503 | Use line buffering on output. This can cause a performance
|
|---|
| 504 | penalty.
|
|---|
| 505 |
|
|---|
| 506 | `--mmap'
|
|---|
| 507 | This option is deprecated and now elicits a warning, but is
|
|---|
| 508 | otherwise a no-op. It used to make `grep' read input with the
|
|---|
| 509 | `mmap' system call, instead of the default `read' system call. On
|
|---|
| 510 | modern systems, `mmap' would rarely if ever yield better
|
|---|
| 511 | performance.
|
|---|
| 512 |
|
|---|
| 513 | `-U'
|
|---|
| 514 | `--binary'
|
|---|
| 515 | Treat the file(s) as binary. By default, under MS-DOS and
|
|---|
| 516 | MS-Windows, `grep' guesses the file type by looking at the
|
|---|
| 517 | contents of the first 32kB read from the file. If `grep' decides
|
|---|
| 518 | the file is a text file, it strips the `CR' characters from the
|
|---|
| 519 | original file contents (to make regular expressions with `^' and
|
|---|
| 520 | `$' work correctly). Specifying `-U' overrules this guesswork,
|
|---|
| 521 | causing all files to be read and passed to the matching mechanism
|
|---|
| 522 | verbatim; if the file is a text file with `CR/LF' pairs at the end
|
|---|
| 523 | of each line, this will cause some regular expressions to fail.
|
|---|
| 524 | This option has no effect on platforms other than MS-DOS and
|
|---|
| 525 | MS-Windows.
|
|---|
| 526 |
|
|---|
| 527 | `-z'
|
|---|
| 528 | `--null-data'
|
|---|
| 529 | Treat the input as a set of lines, each terminated by a zero byte
|
|---|
| 530 | (the ASCII `NUL' character) instead of a newline. Like the `-Z'
|
|---|
| 531 | or `--null' option, this option can be used with commands like
|
|---|
| 532 | `sort -z' to process arbitrary file names.
|
|---|
| 533 |
|
|---|
| 534 |
|
|---|
| 535 |
|
|---|
| 536 | File: grep.info, Node: Environment Variables, Next: Exit Status, Prev: Command-line Options, Up: Invoking
|
|---|
| 537 |
|
|---|
| 538 | 2.2 Environment Variables
|
|---|
| 539 | =========================
|
|---|
| 540 |
|
|---|
| 541 | The behavior of `grep' is affected by the following environment
|
|---|
| 542 | variables.
|
|---|
| 543 |
|
|---|
| 544 | The locale for category `LC_FOO' is specified by examining the three
|
|---|
| 545 | environment variables `LC_ALL', `LC_FOO', and `LANG', in that order.
|
|---|
| 546 | The first of these variables that is set specifies the locale. For
|
|---|
| 547 | example, if `LC_ALL' is not set, but `LC_MESSAGES' is set to `pt_BR',
|
|---|
| 548 | then the Brazilian Portuguese locale is used for the `LC_MESSAGES'
|
|---|
| 549 | category. The `C' locale is used if none of these environment
|
|---|
| 550 | variables are set, if the locale catalog is not installed, or if `grep'
|
|---|
| 551 | was not compiled with national language support (NLS).
|
|---|
| 552 |
|
|---|
| 553 | Many of the environment variables in the following list let you
|
|---|
| 554 | control highlighting using Select Graphic Rendition (SGR) commands
|
|---|
| 555 | interpreted by the terminal or terminal emulator. (See the section in
|
|---|
| 556 | the documentation of your text terminal for permitted values and their
|
|---|
| 557 | meanings as character attributes.) These substring values are integers
|
|---|
| 558 | in decimal representation and can be concatenated with semicolons.
|
|---|
| 559 | `grep' takes care of assembling the result into a complete SGR sequence
|
|---|
| 560 | (`\33['...`m'). Common values to concatenate include `1' for bold, `4'
|
|---|
| 561 | for underline, `5' for blink, `7' for inverse, `39' for default
|
|---|
| 562 | foreground color, `30' to `37' for foreground colors, `90' to `97' for
|
|---|
| 563 | 16-color mode foreground colors, `38;5;0' to `38;5;255' for 88-color
|
|---|
| 564 | and 256-color modes foreground colors, `49' for default background
|
|---|
| 565 | color, `40' to `47' for background colors, `100' to `107' for 16-color
|
|---|
| 566 | mode background colors, and `48;5;0' to `48;5;255' for 88-color and
|
|---|
| 567 | 256-color modes background colors.
|
|---|
| 568 |
|
|---|
| 569 | The two-letter names used in the `GREP_COLORS' environment variable
|
|---|
| 570 | (and some of the others) refer to terminal "capabilities," the ability
|
|---|
| 571 | of a terminal to highlight text, or change its color, and so on. These
|
|---|
| 572 | capabilities are stored in an online database and accessed by the
|
|---|
| 573 | `terminfo' library.
|
|---|
| 574 |
|
|---|
| 575 | `GREP_OPTIONS'
|
|---|
| 576 | This variable specifies default options to be placed in front of
|
|---|
| 577 | any explicit options. For example, if `GREP_OPTIONS' is
|
|---|
| 578 | `--binary-files=without-match --directories=skip', `grep' behaves
|
|---|
| 579 | as if the two options `--binary-files=without-match' and
|
|---|
| 580 | `--directories=skip' had been specified before any explicit
|
|---|
| 581 | options. Option specifications are separated by whitespace. A
|
|---|
| 582 | backslash escapes the next character, so it can be used to specify
|
|---|
| 583 | an option containing whitespace or a backslash.
|
|---|
| 584 |
|
|---|
| 585 | The `GREP_OPTIONS' value does not affect whether `grep' without
|
|---|
| 586 | file operands searches standard input or the working directory;
|
|---|
| 587 | that is affected only by command-line options. For example, the
|
|---|
| 588 | command `grep PAT' searches standard input and the command `grep
|
|---|
| 589 | -r PAT' searches the working directory, regardless of whether
|
|---|
| 590 | `GREP_OPTIONS' contains `-r'.
|
|---|
| 591 |
|
|---|
| 592 | `GREP_COLOR'
|
|---|
| 593 | This variable specifies the color used to highlight matched
|
|---|
| 594 | (non-empty) text. It is deprecated in favor of `GREP_COLORS', but
|
|---|
| 595 | still supported. The `mt', `ms', and `mc' capabilities of
|
|---|
| 596 | `GREP_COLORS' have priority over it. It can only specify the
|
|---|
| 597 | color used to highlight the matching non-empty text in any
|
|---|
| 598 | matching line (a selected line when the `-v' command-line option
|
|---|
| 599 | is omitted, or a context line when `-v' is specified). The
|
|---|
| 600 | default is `01;31', which means a bold red foreground text on the
|
|---|
| 601 | terminal's default background.
|
|---|
| 602 |
|
|---|
| 603 | `GREP_COLORS'
|
|---|
| 604 | This variable specifies the colors and other attributes used to
|
|---|
| 605 | highlight various parts of the output. Its value is a
|
|---|
| 606 | colon-separated list of `terminfo' capabilities that defaults to
|
|---|
| 607 | `ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36' with the `rv'
|
|---|
| 608 | and `ne' boolean capabilities omitted (i.e., false). Supported
|
|---|
| 609 | capabilities are as follows.
|
|---|
| 610 |
|
|---|
| 611 | `sl='
|
|---|
| 612 | SGR substring for whole selected lines (i.e., matching lines
|
|---|
| 613 | when the `-v' command-line option is omitted, or non-matching
|
|---|
| 614 | lines when `-v' is specified). If however the boolean `rv'
|
|---|
| 615 | capability and the `-v' command-line option are both
|
|---|
| 616 | specified, it applies to context matching lines instead. The
|
|---|
| 617 | default is empty (i.e., the terminal's default color pair).
|
|---|
| 618 |
|
|---|
| 619 | `cx='
|
|---|
| 620 | SGR substring for whole context lines (i.e., non-matching
|
|---|
| 621 | lines when the `-v' command-line option is omitted, or
|
|---|
| 622 | matching lines when `-v' is specified). If however the
|
|---|
| 623 | boolean `rv' capability and the `-v' command-line option are
|
|---|
| 624 | both specified, it applies to selected non-matching lines
|
|---|
| 625 | instead. The default is empty (i.e., the terminal's default
|
|---|
| 626 | color pair).
|
|---|
| 627 |
|
|---|
| 628 | `rv'
|
|---|
| 629 | Boolean value that reverses (swaps) the meanings of the `sl='
|
|---|
| 630 | and `cx=' capabilities when the `-v' command-line option is
|
|---|
| 631 | specified. The default is false (i.e., the capability is
|
|---|
| 632 | omitted).
|
|---|
| 633 |
|
|---|
| 634 | `mt=01;31'
|
|---|
| 635 | SGR substring for matching non-empty text in any matching line
|
|---|
| 636 | (i.e., a selected line when the `-v' command-line option is
|
|---|
| 637 | omitted, or a context line when `-v' is specified). Setting
|
|---|
| 638 | this is equivalent to setting both `ms=' and `mc=' at once to
|
|---|
| 639 | the same value. The default is a bold red text foreground
|
|---|
| 640 | over the current line background.
|
|---|
| 641 |
|
|---|
| 642 | `ms=01;31'
|
|---|
| 643 | SGR substring for matching non-empty text in a selected line.
|
|---|
| 644 | (This is used only when the `-v' command-line option is
|
|---|
| 645 | omitted.) The effect of the `sl=' (or `cx=' if `rv')
|
|---|
| 646 | capability remains active when this takes effect. The
|
|---|
| 647 | default is a bold red text foreground over the current line
|
|---|
| 648 | background.
|
|---|
| 649 |
|
|---|
| 650 | `mc=01;31'
|
|---|
| 651 | SGR substring for matching non-empty text in a context line.
|
|---|
| 652 | (This is used only when the `-v' command-line option is
|
|---|
| 653 | specified.) The effect of the `cx=' (or `sl=' if `rv')
|
|---|
| 654 | capability remains active when this takes effect. The
|
|---|
| 655 | default is a bold red text foreground over the current line
|
|---|
| 656 | background.
|
|---|
| 657 |
|
|---|
| 658 | `fn=35'
|
|---|
| 659 | SGR substring for file names prefixing any content line. The
|
|---|
| 660 | default is a magenta text foreground over the terminal's
|
|---|
| 661 | default background.
|
|---|
| 662 |
|
|---|
| 663 | `ln=32'
|
|---|
| 664 | SGR substring for line numbers prefixing any content line.
|
|---|
| 665 | The default is a green text foreground over the terminal's
|
|---|
| 666 | default background.
|
|---|
| 667 |
|
|---|
| 668 | `bn=32'
|
|---|
| 669 | SGR substring for byte offsets prefixing any content line.
|
|---|
| 670 | The default is a green text foreground over the terminal's
|
|---|
| 671 | default background.
|
|---|
| 672 |
|
|---|
| 673 | `se=36'
|
|---|
| 674 | SGR substring for separators that are inserted between
|
|---|
| 675 | selected line fields (`:'), between context line fields (`-'),
|
|---|
| 676 | and between groups of adjacent lines when nonzero context is
|
|---|
| 677 | specified (`--'). The default is a cyan text foreground over
|
|---|
| 678 | the terminal's default background.
|
|---|
| 679 |
|
|---|
| 680 | `ne'
|
|---|
| 681 | Boolean value that prevents clearing to the end of line using
|
|---|
| 682 | Erase in Line (EL) to Right (`\33[K') each time a colorized
|
|---|
| 683 | item ends. This is needed on terminals on which EL is not
|
|---|
| 684 | supported. It is otherwise useful on terminals for which the
|
|---|
| 685 | `back_color_erase' (`bce') boolean `terminfo' capability does
|
|---|
| 686 | not apply, when the chosen highlight colors do not affect the
|
|---|
| 687 | background, or when EL is too slow or causes too much flicker.
|
|---|
| 688 | The default is false (i.e., the capability is omitted).
|
|---|
| 689 |
|
|---|
| 690 | Note that boolean capabilities have no `='... part. They are
|
|---|
| 691 | omitted (i.e., false) by default and become true when specified.
|
|---|
| 692 |
|
|---|
| 693 | `LC_ALL'
|
|---|
| 694 | `LC_COLLATE'
|
|---|
| 695 | `LANG'
|
|---|
| 696 | These variables specify the locale for the `LC_COLLATE' category,
|
|---|
| 697 | which determines the collating sequence used to interpret range
|
|---|
| 698 | expressions like `[a-z]'.
|
|---|
| 699 |
|
|---|
| 700 | `LC_ALL'
|
|---|
| 701 | `LC_CTYPE'
|
|---|
| 702 | `LANG'
|
|---|
| 703 | These variables specify the locale for the `LC_CTYPE' category,
|
|---|
| 704 | which determines the type of characters, e.g., which characters
|
|---|
| 705 | are whitespace.
|
|---|
| 706 |
|
|---|
| 707 | `LC_ALL'
|
|---|
| 708 | `LC_MESSAGES'
|
|---|
| 709 | `LANG'
|
|---|
| 710 | These variables specify the locale for the `LC_MESSAGES' category,
|
|---|
| 711 | which determines the language that `grep' uses for messages. The
|
|---|
| 712 | default `C' locale uses American English messages.
|
|---|
| 713 |
|
|---|
| 714 | `POSIXLY_CORRECT'
|
|---|
| 715 | If set, `grep' behaves as POSIX requires; otherwise, `grep'
|
|---|
| 716 | behaves more like other GNU programs. POSIX requires that options
|
|---|
| 717 | that follow file names must be treated as file names; by default,
|
|---|
| 718 | such options are permuted to the front of the operand list and are
|
|---|
| 719 | treated as options. Also, `POSIXLY_CORRECT' disables special
|
|---|
| 720 | handling of an invalid bracket expression. *Note
|
|---|
| 721 | invalid-bracket-expr::.
|
|---|
| 722 |
|
|---|
| 723 | `_N_GNU_nonoption_argv_flags_'
|
|---|
| 724 | (Here `N' is `grep''s numeric process ID.) If the Ith character
|
|---|
| 725 | of this environment variable's value is `1', do not consider the
|
|---|
| 726 | Ith operand of `grep' to be an option, even if it appears to be
|
|---|
| 727 | one. A shell can put this variable in the environment for each
|
|---|
| 728 | command it runs, specifying which operands are the results of file
|
|---|
| 729 | name wildcard expansion and therefore should not be treated as
|
|---|
| 730 | options. This behavior is available only with the GNU C library,
|
|---|
| 731 | and only when `POSIXLY_CORRECT' is not set.
|
|---|
| 732 |
|
|---|
| 733 |
|
|---|
| 734 |
|
|---|
| 735 | File: grep.info, Node: Exit Status, Next: grep Programs, Prev: Environment Variables, Up: Invoking
|
|---|
| 736 |
|
|---|
| 737 | 2.3 Exit Status
|
|---|
| 738 | ===============
|
|---|
| 739 |
|
|---|
| 740 | Normally, the exit status is 0 if selected lines are found and 1
|
|---|
| 741 | otherwise. But the exit status is 2 if an error occurred, unless the
|
|---|
| 742 | `-q' or `--quiet' or `--silent' option is used and a selected line is
|
|---|
| 743 | found. Note, however, that POSIX only mandates, for programs such as
|
|---|
| 744 | `grep', `cmp', and `diff', that the exit status in case of error be
|
|---|
| 745 | greater than 1; it is therefore advisable, for the sake of portability,
|
|---|
| 746 | to use logic that tests for this general condition instead of strict
|
|---|
| 747 | equality with 2.
|
|---|
| 748 |
|
|---|
| 749 |
|
|---|
| 750 | File: grep.info, Node: grep Programs, Prev: Exit Status, Up: Invoking
|
|---|
| 751 |
|
|---|
| 752 | 2.4 `grep' Programs
|
|---|
| 753 | ===================
|
|---|
| 754 |
|
|---|
| 755 | `grep' searches the named input files for lines containing a match to
|
|---|
| 756 | the given pattern. By default, `grep' prints the matching lines. A
|
|---|
| 757 | file named `-' stands for standard input. If no input is specified,
|
|---|
| 758 | `grep' searches the working directory `.' if given a command-line
|
|---|
| 759 | option specifying recursion; otherwise, `grep' searches standard input.
|
|---|
| 760 | There are four major variants of `grep', controlled by the following
|
|---|
| 761 | options.
|
|---|
| 762 |
|
|---|
| 763 | `-G'
|
|---|
| 764 | `--basic-regexp'
|
|---|
| 765 | Interpret the pattern as a basic regular expression (BRE). This
|
|---|
| 766 | is the default.
|
|---|
| 767 |
|
|---|
| 768 | `-E'
|
|---|
| 769 | `--extended-regexp'
|
|---|
| 770 | Interpret the pattern as an extended regular expression (ERE).
|
|---|
| 771 | (`-E' is specified by POSIX.)
|
|---|
| 772 |
|
|---|
| 773 | `-F'
|
|---|
| 774 | `--fixed-strings'
|
|---|
| 775 | Interpret the pattern as a list of fixed strings, separated by
|
|---|
| 776 | newlines, any of which is to be matched. (`-F' is specified by
|
|---|
| 777 | POSIX.)
|
|---|
| 778 |
|
|---|
| 779 | `-P'
|
|---|
| 780 | `--perl-regexp'
|
|---|
| 781 | Interpret the pattern as a Perl regular expression. This is
|
|---|
| 782 | highly experimental and `grep -P' may warn of unimplemented
|
|---|
| 783 | features.
|
|---|
| 784 |
|
|---|
| 785 |
|
|---|
| 786 | In addition, two variant programs `egrep' and `fgrep' are available.
|
|---|
| 787 | `egrep' is the same as `grep -E'. `fgrep' is the same as `grep -F'.
|
|---|
| 788 | Direct invocation as either `egrep' or `fgrep' is deprecated, but is
|
|---|
| 789 | provided to allow historical applications that rely on them to run
|
|---|
| 790 | unmodified.
|
|---|
| 791 |
|
|---|
| 792 |
|
|---|
| 793 | File: grep.info, Node: Regular Expressions, Next: Usage, Prev: Invoking, Up: Top
|
|---|
| 794 |
|
|---|
| 795 | 3 Regular Expressions
|
|---|
| 796 | *********************
|
|---|
| 797 |
|
|---|
| 798 | A "regular expression" is a pattern that describes a set of strings.
|
|---|
| 799 | Regular expressions are constructed analogously to arithmetic
|
|---|
| 800 | expressions, by using various operators to combine smaller expressions.
|
|---|
| 801 | `grep' understands three different versions of regular expression
|
|---|
| 802 | syntax: "basic," (BRE) "extended" (ERE) and "perl". In GNU `grep',
|
|---|
| 803 | there is no difference in available functionality between the basic and
|
|---|
| 804 | extended syntaxes. In other implementations, basic regular expressions
|
|---|
| 805 | are less powerful. The following description applies to extended
|
|---|
| 806 | regular expressions; differences for basic regular expressions are
|
|---|
| 807 | summarized afterwards. Perl regular expressions give additional
|
|---|
| 808 | functionality, and are documented in the pcresyntax(3) and
|
|---|
| 809 | pcrepattern(3) manual pages, but may not be available on every system.
|
|---|
| 810 |
|
|---|
| 811 | * Menu:
|
|---|
| 812 |
|
|---|
| 813 | * Fundamental Structure::
|
|---|
| 814 | * Character Classes and Bracket Expressions::
|
|---|
| 815 | * The Backslash Character and Special Expressions::
|
|---|
| 816 | * Anchoring::
|
|---|
| 817 | * Back-references and Subexpressions::
|
|---|
| 818 | * Basic vs Extended::
|
|---|
| 819 |
|
|---|
| 820 |
|
|---|
| 821 | File: grep.info, Node: Fundamental Structure, Next: Character Classes and Bracket Expressions, Up: Regular Expressions
|
|---|
| 822 |
|
|---|
| 823 | 3.1 Fundamental Structure
|
|---|
| 824 | =========================
|
|---|
| 825 |
|
|---|
| 826 | The fundamental building blocks are the regular expressions that match
|
|---|
| 827 | a single character. Most characters, including all letters and digits,
|
|---|
| 828 | are regular expressions that match themselves. Any meta-character with
|
|---|
| 829 | special meaning may be quoted by preceding it with a backslash.
|
|---|
| 830 |
|
|---|
| 831 | A regular expression may be followed by one of several repetition
|
|---|
| 832 | operators:
|
|---|
| 833 |
|
|---|
| 834 | `.'
|
|---|
| 835 | The period `.' matches any single character.
|
|---|
| 836 |
|
|---|
| 837 | `?'
|
|---|
| 838 | The preceding item is optional and will be matched at most once.
|
|---|
| 839 |
|
|---|
| 840 | `*'
|
|---|
| 841 | The preceding item will be matched zero or more times.
|
|---|
| 842 |
|
|---|
| 843 | `+'
|
|---|
| 844 | The preceding item will be matched one or more times.
|
|---|
| 845 |
|
|---|
| 846 | `{N}'
|
|---|
| 847 | The preceding item is matched exactly N times.
|
|---|
| 848 |
|
|---|
| 849 | `{N,}'
|
|---|
| 850 | The preceding item is matched N or more times.
|
|---|
| 851 |
|
|---|
| 852 | `{,M}'
|
|---|
| 853 | The preceding item is matched at most M times.
|
|---|
| 854 |
|
|---|
| 855 | `{N,M}'
|
|---|
| 856 | The preceding item is matched at least N times, but not more than
|
|---|
| 857 | M times.
|
|---|
| 858 |
|
|---|
| 859 |
|
|---|
| 860 | The empty regular expression matches the empty string. Two regular
|
|---|
| 861 | expressions may be concatenated; the resulting regular expression
|
|---|
| 862 | matches any string formed by concatenating two substrings that
|
|---|
| 863 | respectively match the concatenated expressions.
|
|---|
| 864 |
|
|---|
| 865 | Two regular expressions may be joined by the infix operator `|'; the
|
|---|
| 866 | resulting regular expression matches any string matching either
|
|---|
| 867 | alternate expression.
|
|---|
| 868 |
|
|---|
| 869 | Repetition takes precedence over concatenation, which in turn takes
|
|---|
| 870 | precedence over alternation. A whole expression may be enclosed in
|
|---|
| 871 | parentheses to override these precedence rules and form a subexpression.
|
|---|
| 872 |
|
|---|
| 873 |
|
|---|
| 874 | File: grep.info, Node: Character Classes and Bracket Expressions, Next: The Backslash Character and Special Expressions, Prev: Fundamental Structure, Up: Regular Expressions
|
|---|
| 875 |
|
|---|
| 876 | 3.2 Character Classes and Bracket Expressions
|
|---|
| 877 | =============================================
|
|---|
| 878 |
|
|---|
| 879 | A "bracket expression" is a list of characters enclosed by `[' and `]'.
|
|---|
| 880 | It matches any single character in that list; if the first character of
|
|---|
| 881 | the list is the caret `^', then it matches any character *not* in the
|
|---|
| 882 | list. For example, the regular expression `[0123456789]' matches any
|
|---|
| 883 | single digit.
|
|---|
| 884 |
|
|---|
| 885 | Within a bracket expression, a "range expression" consists of two
|
|---|
| 886 | characters separated by a hyphen. It matches any single character that
|
|---|
| 887 | sorts between the two characters, inclusive, using the locale's
|
|---|
| 888 | collating sequence and character set. For example, in the default C
|
|---|
| 889 | locale, `[a-d]' is equivalent to `[abcd]'. Many locales sort
|
|---|
| 890 | characters in dictionary order, and in these locales `[a-d]' is
|
|---|
| 891 | typically not equivalent to `[abcd]'; it might be equivalent to
|
|---|
| 892 | `[aBbCcDd]', for example. To obtain the traditional interpretation of
|
|---|
| 893 | bracket expressions, you can use the `C' locale by setting the `LC_ALL'
|
|---|
| 894 | environment variable to the value `C'.
|
|---|
| 895 |
|
|---|
| 896 | Finally, certain named classes of characters are predefined within
|
|---|
| 897 | bracket expressions, as follows. Their interpretation depends on the
|
|---|
| 898 | `LC_CTYPE' locale; for example, `[[:alnum:]]' means the character class
|
|---|
| 899 | of numbers and letters in the current locale.
|
|---|
| 900 |
|
|---|
| 901 | `[:alnum:]'
|
|---|
| 902 | Alphanumeric characters: `[:alpha:]' and `[:digit:]'; in the `C'
|
|---|
| 903 | locale and ASCII character encoding, this is the same as
|
|---|
| 904 | `[0-9A-Za-z]'.
|
|---|
| 905 |
|
|---|
| 906 | `[:alpha:]'
|
|---|
| 907 | Alphabetic characters: `[:lower:]' and `[:upper:]'; in the `C'
|
|---|
| 908 | locale and ASCII character encoding, this is the same as
|
|---|
| 909 | `[A-Za-z]'.
|
|---|
| 910 |
|
|---|
| 911 | `[:blank:]'
|
|---|
| 912 | Blank characters: space and tab.
|
|---|
| 913 |
|
|---|
| 914 | `[:cntrl:]'
|
|---|
| 915 | Control characters. In ASCII, these characters have octal codes
|
|---|
| 916 | 000 through 037, and 177 (`DEL'). In other character sets, these
|
|---|
| 917 | are the equivalent characters, if any.
|
|---|
| 918 |
|
|---|
| 919 | `[:digit:]'
|
|---|
| 920 | Digits: `0 1 2 3 4 5 6 7 8 9'.
|
|---|
| 921 |
|
|---|
| 922 | `[:graph:]'
|
|---|
| 923 | Graphical characters: `[:alnum:]' and `[:punct:]'.
|
|---|
| 924 |
|
|---|
| 925 | `[:lower:]'
|
|---|
| 926 | Lower-case letters; in the `C' locale and ASCII character
|
|---|
| 927 | encoding, this is `a b c d e f g h i j k l m n o p q r s t u v w x
|
|---|
| 928 | y z'.
|
|---|
| 929 |
|
|---|
| 930 | `[:print:]'
|
|---|
| 931 | Printable characters: `[:alnum:]', `[:punct:]', and space.
|
|---|
| 932 |
|
|---|
| 933 | `[:punct:]'
|
|---|
| 934 | Punctuation characters; in the `C' locale and ASCII character
|
|---|
| 935 | encoding, this is `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \
|
|---|
| 936 | ] ^ _ ` { | } ~'.
|
|---|
| 937 |
|
|---|
| 938 | `[:space:]'
|
|---|
| 939 | Space characters: in the `C' locale, this is tab, newline,
|
|---|
| 940 | vertical tab, form feed, carriage return, and space. *Note
|
|---|
| 941 | Usage::, for more discussion of matching newlines.
|
|---|
| 942 |
|
|---|
| 943 | `[:upper:]'
|
|---|
| 944 | Upper-case letters: in the `C' locale and ASCII character
|
|---|
| 945 | encoding, this is `A B C D E F G H I J K L M N O P Q R S T U V W X
|
|---|
| 946 | Y Z'.
|
|---|
| 947 |
|
|---|
| 948 | `[:xdigit:]'
|
|---|
| 949 | Hexadecimal digits: `0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f'.
|
|---|
| 950 |
|
|---|
| 951 | Note that the brackets in these class names are part of the symbolic
|
|---|
| 952 | names, and must be included in addition to the brackets delimiting the
|
|---|
| 953 | bracket expression.
|
|---|
| 954 |
|
|---|
| 955 | If you mistakenly omit the outer brackets, and search for say,
|
|---|
| 956 | `[:upper:]', GNU `grep' prints a diagnostic and exits with status 2, on
|
|---|
| 957 | the assumption that you did not intend to search for the nominally
|
|---|
| 958 | equivalent regular expression: `[:epru]'. Set the `POSIXLY_CORRECT'
|
|---|
| 959 | environment variable to disable this feature.
|
|---|
| 960 |
|
|---|
| 961 | Most meta-characters lose their special meaning inside bracket
|
|---|
| 962 | expressions.
|
|---|
| 963 |
|
|---|
| 964 | `]'
|
|---|
| 965 | ends the bracket expression if it's not the first list item. So,
|
|---|
| 966 | if you want to make the `]' character a list item, you must put it
|
|---|
| 967 | first.
|
|---|
| 968 |
|
|---|
| 969 | `[.'
|
|---|
| 970 | represents the open collating symbol.
|
|---|
| 971 |
|
|---|
| 972 | `.]'
|
|---|
| 973 | represents the close collating symbol.
|
|---|
| 974 |
|
|---|
| 975 | `[='
|
|---|
| 976 | represents the open equivalence class.
|
|---|
| 977 |
|
|---|
| 978 | `=]'
|
|---|
| 979 | represents the close equivalence class.
|
|---|
| 980 |
|
|---|
| 981 | `[:'
|
|---|
| 982 | represents the open character class symbol, and should be followed
|
|---|
| 983 | by a valid character class name.
|
|---|
| 984 |
|
|---|
| 985 | `:]'
|
|---|
| 986 | represents the close character class symbol.
|
|---|
| 987 |
|
|---|
| 988 | `-'
|
|---|
| 989 | represents the range if it's not first or last in a list or the
|
|---|
| 990 | ending point of a range.
|
|---|
| 991 |
|
|---|
| 992 | `^'
|
|---|
| 993 | represents the characters not in the list. If you want to make
|
|---|
| 994 | the `^' character a list item, place it anywhere but first.
|
|---|
| 995 |
|
|---|
| 996 |
|
|---|
| 997 |
|
|---|
| 998 | File: grep.info, Node: The Backslash Character and Special Expressions, Next: Anchoring, Prev: Character Classes and Bracket Expressions, Up: Regular Expressions
|
|---|
| 999 |
|
|---|
| 1000 | 3.3 The Backslash Character and Special Expressions
|
|---|
| 1001 | ===================================================
|
|---|
| 1002 |
|
|---|
| 1003 | The `\' character, when followed by certain ordinary characters, takes
|
|---|
| 1004 | a special meaning:
|
|---|
| 1005 |
|
|---|
| 1006 | `\b'
|
|---|
| 1007 | Match the empty string at the edge of a word.
|
|---|
| 1008 |
|
|---|
| 1009 | `\B'
|
|---|
| 1010 | Match the empty string provided it's not at the edge of a word.
|
|---|
| 1011 |
|
|---|
| 1012 | `\<'
|
|---|
| 1013 | Match the empty string at the beginning of word.
|
|---|
| 1014 |
|
|---|
| 1015 | `\>'
|
|---|
| 1016 | Match the empty string at the end of word.
|
|---|
| 1017 |
|
|---|
| 1018 | `\w'
|
|---|
| 1019 | Match word constituent, it is a synonym for `[_[:alnum:]]'.
|
|---|
| 1020 |
|
|---|
| 1021 | `\W'
|
|---|
| 1022 | Match non-word constituent, it is a synonym for `[^_[:alnum:]]'.
|
|---|
| 1023 |
|
|---|
| 1024 | `\s'
|
|---|
| 1025 | Match whitespace, it is a synonym for `[[:space:]]'.
|
|---|
| 1026 |
|
|---|
| 1027 | `\S'
|
|---|
| 1028 | Match non-whitespace, it is a synonym for `[^[:space:]]'.
|
|---|
| 1029 |
|
|---|
| 1030 |
|
|---|
| 1031 | For example, `\brat\b' matches the separate word `rat', `\Brat\B'
|
|---|
| 1032 | matches `crate' but not `furry rat'.
|
|---|
| 1033 |
|
|---|
| 1034 |
|
|---|
| 1035 | File: grep.info, Node: Anchoring, Next: Back-references and Subexpressions, Prev: The Backslash Character and Special Expressions, Up: Regular Expressions
|
|---|
| 1036 |
|
|---|
| 1037 | 3.4 Anchoring
|
|---|
| 1038 | =============
|
|---|
| 1039 |
|
|---|
| 1040 | The caret `^' and the dollar sign `$' are meta-characters that
|
|---|
| 1041 | respectively match the empty string at the beginning and end of a line.
|
|---|
| 1042 | They are termed "anchors", since they force the match to be "anchored"
|
|---|
| 1043 | to beginning or end of a line, respectively.
|
|---|
| 1044 |
|
|---|
| 1045 |
|
|---|
| 1046 | File: grep.info, Node: Back-references and Subexpressions, Next: Basic vs Extended, Prev: Anchoring, Up: Regular Expressions
|
|---|
| 1047 |
|
|---|
| 1048 | 3.5 Back-references and Subexpressions
|
|---|
| 1049 | ======================================
|
|---|
| 1050 |
|
|---|
| 1051 | The back-reference `\N', where N is a single digit, matches the
|
|---|
| 1052 | substring previously matched by the Nth parenthesized subexpression of
|
|---|
| 1053 | the regular expression. For example, `(a)\1' matches `aa'. When used
|
|---|
| 1054 | with alternation, if the group does not participate in the match then
|
|---|
| 1055 | the back-reference makes the whole match fail. For example, `a(.)|b\1'
|
|---|
| 1056 | will not match `ba'. When multiple regular expressions are given with
|
|---|
| 1057 | `-e' or from a file (`-f FILE'), back-references are local to each
|
|---|
| 1058 | expression.
|
|---|
| 1059 |
|
|---|
| 1060 |
|
|---|
| 1061 | File: grep.info, Node: Basic vs Extended, Prev: Back-references and Subexpressions, Up: Regular Expressions
|
|---|
| 1062 |
|
|---|
| 1063 | 3.6 Basic vs Extended Regular Expressions
|
|---|
| 1064 | =========================================
|
|---|
| 1065 |
|
|---|
| 1066 | In basic regular expressions the meta-characters `?', `+', `{', `|',
|
|---|
| 1067 | `(', and `)' lose their special meaning; instead use the backslashed
|
|---|
| 1068 | versions `\?', `\+', `\{', `\|', `\(', and `\)'.
|
|---|
| 1069 |
|
|---|
| 1070 | Traditional `egrep' did not support the `{' meta-character, and some
|
|---|
| 1071 | `egrep' implementations support `\{' instead, so portable scripts
|
|---|
| 1072 | should avoid `{' in `grep -E' patterns and should use `[{]' to match a
|
|---|
| 1073 | literal `{'.
|
|---|
| 1074 |
|
|---|
| 1075 | GNU `grep -E' attempts to support traditional usage by assuming that
|
|---|
| 1076 | `{' is not special if it would be the start of an invalid interval
|
|---|
| 1077 | specification. For example, the command `grep -E '{1'' searches for
|
|---|
| 1078 | the two-character string `{1' instead of reporting a syntax error in
|
|---|
| 1079 | the regular expression. POSIX allows this behavior as an extension,
|
|---|
| 1080 | but portable scripts should avoid it.
|
|---|
| 1081 |
|
|---|
| 1082 |
|
|---|
| 1083 | File: grep.info, Node: Usage, Next: Reporting Bugs, Prev: Regular Expressions, Up: Top
|
|---|
| 1084 |
|
|---|
| 1085 | 4 Usage
|
|---|
| 1086 | *******
|
|---|
| 1087 |
|
|---|
| 1088 | Here is an example command that invokes GNU `grep':
|
|---|
| 1089 |
|
|---|
| 1090 | grep -i 'hello.*world' menu.h main.c
|
|---|
| 1091 |
|
|---|
| 1092 | This lists all lines in the files `menu.h' and `main.c' that contain
|
|---|
| 1093 | the string `hello' followed by the string `world'; this is because `.*'
|
|---|
| 1094 | matches zero or more characters within a line. *Note Regular
|
|---|
| 1095 | Expressions::. The `-i' option causes `grep' to ignore case, causing
|
|---|
| 1096 | it to match the line `Hello, world!', which it would not otherwise
|
|---|
| 1097 | match. *Note Invoking::, for more details about how to invoke `grep'.
|
|---|
| 1098 |
|
|---|
| 1099 | Here are some common questions and answers about `grep' usage.
|
|---|
| 1100 |
|
|---|
| 1101 | 1. How can I list just the names of matching files?
|
|---|
| 1102 |
|
|---|
| 1103 | grep -l 'main' *.c
|
|---|
| 1104 |
|
|---|
| 1105 | lists the names of all C files in the current directory whose
|
|---|
| 1106 | contents mention `main'.
|
|---|
| 1107 |
|
|---|
| 1108 | 2. How do I search directories recursively?
|
|---|
| 1109 |
|
|---|
| 1110 | grep -r 'hello' /home/gigi
|
|---|
| 1111 |
|
|---|
| 1112 | searches for `hello' in all files under the `/home/gigi' directory.
|
|---|
| 1113 | For more control over which files are searched, use `find',
|
|---|
| 1114 | `grep', and `xargs'. For example, the following command searches
|
|---|
| 1115 | only C files:
|
|---|
| 1116 |
|
|---|
| 1117 | find /home/gigi -name '*.c' -print0 | xargs -0r grep -H 'hello'
|
|---|
| 1118 |
|
|---|
| 1119 | This differs from the command:
|
|---|
| 1120 |
|
|---|
| 1121 | grep -H 'hello' *.c
|
|---|
| 1122 |
|
|---|
| 1123 | which merely looks for `hello' in all files in the current
|
|---|
| 1124 | directory whose names end in `.c'. The `find ...' command line
|
|---|
| 1125 | above is more similar to the command:
|
|---|
| 1126 |
|
|---|
| 1127 | grep -rH --include='*.c' 'hello' /home/gigi
|
|---|
| 1128 |
|
|---|
| 1129 | 3. What if a pattern has a leading `-'?
|
|---|
| 1130 |
|
|---|
| 1131 | grep -e '--cut here--' *
|
|---|
| 1132 |
|
|---|
| 1133 | searches for all lines matching `--cut here--'. Without `-e',
|
|---|
| 1134 | `grep' would attempt to parse `--cut here--' as a list of options.
|
|---|
| 1135 |
|
|---|
| 1136 | 4. Suppose I want to search for a whole word, not a part of a word?
|
|---|
| 1137 |
|
|---|
| 1138 | grep -w 'hello' *
|
|---|
| 1139 |
|
|---|
| 1140 | searches only for instances of `hello' that are entire words; it
|
|---|
| 1141 | does not match `Othello'. For more control, use `\<' and `\>' to
|
|---|
| 1142 | match the start and end of words. For example:
|
|---|
| 1143 |
|
|---|
| 1144 | grep 'hello\>' *
|
|---|
| 1145 |
|
|---|
| 1146 | searches only for words ending in `hello', so it matches the word
|
|---|
| 1147 | `Othello'.
|
|---|
| 1148 |
|
|---|
| 1149 | 5. How do I output context around the matching lines?
|
|---|
| 1150 |
|
|---|
| 1151 | grep -C 2 'hello' *
|
|---|
| 1152 |
|
|---|
| 1153 | prints two lines of context around each matching line.
|
|---|
| 1154 |
|
|---|
| 1155 | 6. How do I force `grep' to print the name of the file?
|
|---|
| 1156 |
|
|---|
| 1157 | Append `/dev/null':
|
|---|
| 1158 |
|
|---|
| 1159 | grep 'eli' /etc/passwd /dev/null
|
|---|
| 1160 |
|
|---|
| 1161 | gets you:
|
|---|
| 1162 |
|
|---|
| 1163 | /etc/passwd:eli:x:2098:1000:Eli Smith:/home/eli:/bin/bash
|
|---|
| 1164 |
|
|---|
| 1165 | Alternatively, use `-H', which is a GNU extension:
|
|---|
| 1166 |
|
|---|
| 1167 | grep -H 'eli' /etc/passwd
|
|---|
| 1168 |
|
|---|
| 1169 | 7. Why do people use strange regular expressions on `ps' output?
|
|---|
| 1170 |
|
|---|
| 1171 | ps -ef | grep '[c]ron'
|
|---|
| 1172 |
|
|---|
| 1173 | If the pattern had been written without the square brackets, it
|
|---|
| 1174 | would have matched not only the `ps' output line for `cron', but
|
|---|
| 1175 | also the `ps' output line for `grep'. Note that on some platforms,
|
|---|
| 1176 | `ps' limits the output to the width of the screen; `grep' does not
|
|---|
| 1177 | have any limit on the length of a line except the available memory.
|
|---|
| 1178 |
|
|---|
| 1179 | 8. Why does `grep' report "Binary file matches"?
|
|---|
| 1180 |
|
|---|
| 1181 | If `grep' listed all matching "lines" from a binary file, it would
|
|---|
| 1182 | probably generate output that is not useful, and it might even
|
|---|
| 1183 | muck up your display. So GNU `grep' suppresses output from files
|
|---|
| 1184 | that appear to be binary files. To force GNU `grep' to output
|
|---|
| 1185 | lines even from files that appear to be binary, use the `-a' or
|
|---|
| 1186 | `--binary-files=text' option. To eliminate the "Binary file
|
|---|
| 1187 | matches" messages, use the `-I' or `--binary-files=without-match'
|
|---|
| 1188 | option.
|
|---|
| 1189 |
|
|---|
| 1190 | 9. Why doesn't `grep -lv' print non-matching file names?
|
|---|
| 1191 |
|
|---|
| 1192 | `grep -lv' lists the names of all files containing one or more
|
|---|
| 1193 | lines that do not match. To list the names of all files that
|
|---|
| 1194 | contain no matching lines, use the `-L' or `--files-without-match'
|
|---|
| 1195 | option.
|
|---|
| 1196 |
|
|---|
| 1197 | 10. I can do "OR" with `|', but what about "AND"?
|
|---|
| 1198 |
|
|---|
| 1199 | grep 'paul' /etc/motd | grep 'franc,ois'
|
|---|
| 1200 |
|
|---|
| 1201 | finds all lines that contain both `paul' and `franc,ois'.
|
|---|
| 1202 |
|
|---|
| 1203 | 11. Why does the empty pattern match every input line?
|
|---|
| 1204 |
|
|---|
| 1205 | The `grep' command searches for lines that contain strings that
|
|---|
| 1206 | match a pattern. Every line contains the empty string, so an
|
|---|
| 1207 | empty pattern causes `grep' to find a match on each line. It is
|
|---|
| 1208 | not the only such pattern: `^', `$', `.*', and many other patterns
|
|---|
| 1209 | cause `grep' to match every line.
|
|---|
| 1210 |
|
|---|
| 1211 | To match empty lines, use the pattern `^$'. To match blank lines,
|
|---|
| 1212 | use the pattern `^[[:blank:]]*$'. To match no lines at all, use
|
|---|
| 1213 | the command `grep -f /dev/null'.
|
|---|
| 1214 |
|
|---|
| 1215 | 12. How can I search in both standard input and in files?
|
|---|
| 1216 |
|
|---|
| 1217 | Use the special file name `-':
|
|---|
| 1218 |
|
|---|
| 1219 | cat /etc/passwd | grep 'alain' - /etc/motd
|
|---|
| 1220 |
|
|---|
| 1221 | 13. How to express palindromes in a regular expression?
|
|---|
| 1222 |
|
|---|
| 1223 | It can be done by using back-references; for example, a palindrome
|
|---|
| 1224 | of 4 characters can be written with a BRE:
|
|---|
| 1225 |
|
|---|
| 1226 | grep -w -e '\(.\)\(.\).\2\1' file
|
|---|
| 1227 |
|
|---|
| 1228 | It matches the word "radar" or "civic."
|
|---|
| 1229 |
|
|---|
| 1230 | Guglielmo Bondioni proposed a single RE that finds all palindromes
|
|---|
| 1231 | up to 19 characters long using 9 subexpressions and
|
|---|
| 1232 | 9 back-references:
|
|---|
| 1233 |
|
|---|
| 1234 | grep -E -e '^(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?).?\9\8\7\6\5\4\3\2\1$' file
|
|---|
| 1235 |
|
|---|
| 1236 | Note this is done by using GNU ERE extensions; it might not be
|
|---|
| 1237 | portable to other implementations of `grep'.
|
|---|
| 1238 |
|
|---|
| 1239 | 14. Why is this back-reference failing?
|
|---|
| 1240 |
|
|---|
| 1241 | echo 'ba' | grep -E '(a)\1|b\1'
|
|---|
| 1242 |
|
|---|
| 1243 | This gives no output, because the first alternate `(a)\1' does not
|
|---|
| 1244 | match, as there is no `aa' in the input, so the `\1' in the second
|
|---|
| 1245 | alternate has nothing to refer back to, meaning it will never
|
|---|
| 1246 | match anything. (The second alternate in this example can only
|
|---|
| 1247 | match if the first alternate has matched--making the second one
|
|---|
| 1248 | superfluous.)
|
|---|
| 1249 |
|
|---|
| 1250 | 15. How can I match across lines?
|
|---|
| 1251 |
|
|---|
| 1252 | Standard grep cannot do this, as it is fundamentally line-based.
|
|---|
| 1253 | Therefore, merely using the `[:space:]' character class does not
|
|---|
| 1254 | match newlines in the way you might expect. However, if your grep
|
|---|
| 1255 | is compiled with Perl patterns enabled, the Perl `s' modifier
|
|---|
| 1256 | (which makes `.' match newlines) can be used:
|
|---|
| 1257 |
|
|---|
| 1258 | printf 'foo\nbar\n' | grep -P '(?s)foo.*?bar'
|
|---|
| 1259 |
|
|---|
| 1260 | With the GNU `grep' option `-z' (*note File and Directory
|
|---|
| 1261 | Selection::), the input is terminated by null bytes. Thus, you
|
|---|
| 1262 | can match newlines in the input, but the output will be the whole
|
|---|
| 1263 | file, so this is really only useful to determine if the pattern is
|
|---|
| 1264 | present:
|
|---|
| 1265 |
|
|---|
| 1266 | printf 'foo\nbar\n' | grep -z -q 'foo[[:space:]]\+bar'
|
|---|
| 1267 |
|
|---|
| 1268 | Failing either of those options, you need to transform the input
|
|---|
| 1269 | before giving it to `grep', or turn to `awk', `sed', `perl', or
|
|---|
| 1270 | many other utilities that are designed to operate across lines.
|
|---|
| 1271 |
|
|---|
| 1272 | 16. What do `grep', `fgrep', and `egrep' stand for?
|
|---|
| 1273 |
|
|---|
| 1274 | The name `grep' comes from the way line editing was done on Unix.
|
|---|
| 1275 | For example, `ed' uses the following syntax to print a list of
|
|---|
| 1276 | matching lines on the screen:
|
|---|
| 1277 |
|
|---|
| 1278 | global/regular expression/print
|
|---|
| 1279 | g/re/p
|
|---|
| 1280 |
|
|---|
| 1281 | `fgrep' stands for Fixed `grep'; `egrep' stands for Extended
|
|---|
| 1282 | `grep'.
|
|---|
| 1283 |
|
|---|
| 1284 |
|
|---|
| 1285 |
|
|---|
| 1286 | File: grep.info, Node: Reporting Bugs, Next: Copying, Prev: Usage, Up: Top
|
|---|
| 1287 |
|
|---|
| 1288 | 5 Reporting bugs
|
|---|
| 1289 | ****************
|
|---|
| 1290 |
|
|---|
| 1291 | Email bug reports to <bug-grep@gnu.org>, a mailing list whose web page
|
|---|
| 1292 | is `http://lists.gnu.org/mailman/listinfo/bug-grep'. The Savannah bug
|
|---|
| 1293 | tracker for `grep' is located at
|
|---|
| 1294 | `http://savannah.gnu.org/bugs/?group=grep'.
|
|---|
| 1295 |
|
|---|
| 1296 | 5.1 Known Bugs
|
|---|
| 1297 | ==============
|
|---|
| 1298 |
|
|---|
| 1299 | Large repetition counts in the `{n,m}' construct may cause `grep' to
|
|---|
| 1300 | use lots of memory. In addition, certain other obscure regular
|
|---|
| 1301 | expressions require exponential time and space, and may cause `grep' to
|
|---|
| 1302 | run out of memory.
|
|---|
| 1303 |
|
|---|
| 1304 | Back-references are very slow, and may require exponential time.
|
|---|
| 1305 |
|
|---|
| 1306 |
|
|---|
| 1307 | File: grep.info, Node: Copying, Next: Index, Prev: Reporting Bugs, Up: Top
|
|---|
| 1308 |
|
|---|
| 1309 | 6 Copying
|
|---|
| 1310 | *********
|
|---|
| 1311 |
|
|---|
| 1312 | GNU `grep' is licensed under the GNU GPL, which makes it "free
|
|---|
| 1313 | software".
|
|---|
| 1314 |
|
|---|
| 1315 | The "free" in "free software" refers to liberty, not price. As some
|
|---|
| 1316 | GNU project advocates like to point out, think of "free speech" rather
|
|---|
| 1317 | than "free beer". In short, you have the right (freedom) to run and
|
|---|
| 1318 | change `grep' and distribute it to other people, and--if you
|
|---|
| 1319 | want--charge money for doing either. The important restriction is that
|
|---|
| 1320 | you have to grant your recipients the same rights and impose the same
|
|---|
| 1321 | restrictions.
|
|---|
| 1322 |
|
|---|
| 1323 | This general method of licensing software is sometimes called "open
|
|---|
| 1324 | source". The GNU project prefers the term "free software" for reasons
|
|---|
| 1325 | outlined at
|
|---|
| 1326 | `http://www.gnu.org/philosophy/open-source-misses-the-point.html'.
|
|---|
| 1327 |
|
|---|
| 1328 | This manual is free documentation in the same sense. The
|
|---|
| 1329 | documentation license is included below. The license for the program
|
|---|
| 1330 | is available with the source code, or at
|
|---|
| 1331 | `http://www.gnu.org/licenses/gpl.html'.
|
|---|
| 1332 |
|
|---|
| 1333 | * Menu:
|
|---|
| 1334 |
|
|---|
| 1335 | * GNU Free Documentation License::
|
|---|
| 1336 |
|
|---|
| 1337 |
|
|---|
| 1338 | File: grep.info, Node: GNU Free Documentation License, Up: Copying
|
|---|
| 1339 |
|
|---|
| 1340 | 6.1 GNU Free Documentation License
|
|---|
| 1341 | ==================================
|
|---|
| 1342 |
|
|---|
| 1343 | Version 1.3, 3 November 2008
|
|---|
| 1344 |
|
|---|
| 1345 | Copyright (C) 2000-2002, 2007-2008, 2010-2012 Free Software
|
|---|
| 1346 | Foundation, Inc.
|
|---|
| 1347 | `http://fsf.org/'
|
|---|
| 1348 |
|
|---|
| 1349 | Everyone is permitted to copy and distribute verbatim copies
|
|---|
| 1350 | of this license document, but changing it is not allowed.
|
|---|
| 1351 |
|
|---|
| 1352 | 0. PREAMBLE
|
|---|
| 1353 |
|
|---|
| 1354 | The purpose of this License is to make a manual, textbook, or other
|
|---|
| 1355 | functional and useful document "free" in the sense of freedom: to
|
|---|
| 1356 | assure everyone the effective freedom to copy and redistribute it,
|
|---|
| 1357 | with or without modifying it, either commercially or
|
|---|
| 1358 | noncommercially. Secondarily, this License preserves for the
|
|---|
| 1359 | author and publisher a way to get credit for their work, while not
|
|---|
| 1360 | being considered responsible for modifications made by others.
|
|---|
| 1361 |
|
|---|
| 1362 | This License is a kind of "copyleft", which means that derivative
|
|---|
| 1363 | works of the document must themselves be free in the same sense.
|
|---|
| 1364 | It complements the GNU General Public License, which is a copyleft
|
|---|
| 1365 | license designed for free software.
|
|---|
| 1366 |
|
|---|
| 1367 | We have designed this License in order to use it for manuals for
|
|---|
| 1368 | free software, because free software needs free documentation: a
|
|---|
| 1369 | free program should come with manuals providing the same freedoms
|
|---|
| 1370 | that the software does. But this License is not limited to
|
|---|
| 1371 | software manuals; it can be used for any textual work, regardless
|
|---|
| 1372 | of subject matter or whether it is published as a printed book.
|
|---|
| 1373 | We recommend this License principally for works whose purpose is
|
|---|
| 1374 | instruction or reference.
|
|---|
| 1375 |
|
|---|
| 1376 | 1. APPLICABILITY AND DEFINITIONS
|
|---|
| 1377 |
|
|---|
| 1378 | This License applies to any manual or other work, in any medium,
|
|---|
| 1379 | that contains a notice placed by the copyright holder saying it
|
|---|
| 1380 | can be distributed under the terms of this License. Such a notice
|
|---|
| 1381 | grants a world-wide, royalty-free license, unlimited in duration,
|
|---|
| 1382 | to use that work under the conditions stated herein. The
|
|---|
| 1383 | "Document", below, refers to any such manual or work. Any member
|
|---|
| 1384 | of the public is a licensee, and is addressed as "you". You
|
|---|
| 1385 | accept the license if you copy, modify or distribute the work in a
|
|---|
| 1386 | way requiring permission under copyright law.
|
|---|
| 1387 |
|
|---|
| 1388 | A "Modified Version" of the Document means any work containing the
|
|---|
| 1389 | Document or a portion of it, either copied verbatim, or with
|
|---|
| 1390 | modifications and/or translated into another language.
|
|---|
| 1391 |
|
|---|
| 1392 | A "Secondary Section" is a named appendix or a front-matter section
|
|---|
| 1393 | of the Document that deals exclusively with the relationship of the
|
|---|
| 1394 | publishers or authors of the Document to the Document's overall
|
|---|
| 1395 | subject (or to related matters) and contains nothing that could
|
|---|
| 1396 | fall directly within that overall subject. (Thus, if the Document
|
|---|
| 1397 | is in part a textbook of mathematics, a Secondary Section may not
|
|---|
| 1398 | explain any mathematics.) The relationship could be a matter of
|
|---|
| 1399 | historical connection with the subject or with related matters, or
|
|---|
| 1400 | of legal, commercial, philosophical, ethical or political position
|
|---|
| 1401 | regarding them.
|
|---|
| 1402 |
|
|---|
| 1403 | The "Invariant Sections" are certain Secondary Sections whose
|
|---|
| 1404 | titles are designated, as being those of Invariant Sections, in
|
|---|
| 1405 | the notice that says that the Document is released under this
|
|---|
| 1406 | License. If a section does not fit the above definition of
|
|---|
| 1407 | Secondary then it is not allowed to be designated as Invariant.
|
|---|
| 1408 | The Document may contain zero Invariant Sections. If the Document
|
|---|
| 1409 | does not identify any Invariant Sections then there are none.
|
|---|
| 1410 |
|
|---|
| 1411 | The "Cover Texts" are certain short passages of text that are
|
|---|
| 1412 | listed, as Front-Cover Texts or Back-Cover Texts, in the notice
|
|---|
| 1413 | that says that the Document is released under this License. A
|
|---|
| 1414 | Front-Cover Text may be at most 5 words, and a Back-Cover Text may
|
|---|
| 1415 | be at most 25 words.
|
|---|
| 1416 |
|
|---|
| 1417 | A "Transparent" copy of the Document means a machine-readable copy,
|
|---|
| 1418 | represented in a format whose specification is available to the
|
|---|
| 1419 | general public, that is suitable for revising the document
|
|---|
| 1420 | straightforwardly with generic text editors or (for images
|
|---|
| 1421 | composed of pixels) generic paint programs or (for drawings) some
|
|---|
| 1422 | widely available drawing editor, and that is suitable for input to
|
|---|
| 1423 | text formatters or for automatic translation to a variety of
|
|---|
| 1424 | formats suitable for input to text formatters. A copy made in an
|
|---|
| 1425 | otherwise Transparent file format whose markup, or absence of
|
|---|
| 1426 | markup, has been arranged to thwart or discourage subsequent
|
|---|
| 1427 | modification by readers is not Transparent. An image format is
|
|---|
| 1428 | not Transparent if used for any substantial amount of text. A
|
|---|
| 1429 | copy that is not "Transparent" is called "Opaque".
|
|---|
| 1430 |
|
|---|
| 1431 | Examples of suitable formats for Transparent copies include plain
|
|---|
| 1432 | ASCII without markup, Texinfo input format, LaTeX input format,
|
|---|
| 1433 | SGML or XML using a publicly available DTD, and
|
|---|
| 1434 | standard-conforming simple HTML, PostScript or PDF designed for
|
|---|
| 1435 | human modification. Examples of transparent image formats include
|
|---|
| 1436 | PNG, XCF and JPG. Opaque formats include proprietary formats that
|
|---|
| 1437 | can be read and edited only by proprietary word processors, SGML or
|
|---|
| 1438 | XML for which the DTD and/or processing tools are not generally
|
|---|
| 1439 | available, and the machine-generated HTML, PostScript or PDF
|
|---|
| 1440 | produced by some word processors for output purposes only.
|
|---|
| 1441 |
|
|---|
| 1442 | The "Title Page" means, for a printed book, the title page itself,
|
|---|
| 1443 | plus such following pages as are needed to hold, legibly, the
|
|---|
| 1444 | material this License requires to appear in the title page. For
|
|---|
| 1445 | works in formats which do not have any title page as such, "Title
|
|---|
| 1446 | Page" means the text near the most prominent appearance of the
|
|---|
| 1447 | work's title, preceding the beginning of the body of the text.
|
|---|
| 1448 |
|
|---|
| 1449 | The "publisher" means any person or entity that distributes copies
|
|---|
| 1450 | of the Document to the public.
|
|---|
| 1451 |
|
|---|
| 1452 | A section "Entitled XYZ" means a named subunit of the Document
|
|---|
| 1453 | whose title either is precisely XYZ or contains XYZ in parentheses
|
|---|
| 1454 | following text that translates XYZ in another language. (Here XYZ
|
|---|
| 1455 | stands for a specific section name mentioned below, such as
|
|---|
| 1456 | "Acknowledgements", "Dedications", "Endorsements", or "History".)
|
|---|
| 1457 | To "Preserve the Title" of such a section when you modify the
|
|---|
| 1458 | Document means that it remains a section "Entitled XYZ" according
|
|---|
| 1459 | to this definition.
|
|---|
| 1460 |
|
|---|
| 1461 | The Document may include Warranty Disclaimers next to the notice
|
|---|
| 1462 | which states that this License applies to the Document. These
|
|---|
| 1463 | Warranty Disclaimers are considered to be included by reference in
|
|---|
| 1464 | this License, but only as regards disclaiming warranties: any other
|
|---|
| 1465 | implication that these Warranty Disclaimers may have is void and
|
|---|
| 1466 | has no effect on the meaning of this License.
|
|---|
| 1467 |
|
|---|
| 1468 | 2. VERBATIM COPYING
|
|---|
| 1469 |
|
|---|
| 1470 | You may copy and distribute the Document in any medium, either
|
|---|
| 1471 | commercially or noncommercially, provided that this License, the
|
|---|
| 1472 | copyright notices, and the license notice saying this License
|
|---|
| 1473 | applies to the Document are reproduced in all copies, and that you
|
|---|
| 1474 | add no other conditions whatsoever to those of this License. You
|
|---|
| 1475 | may not use technical measures to obstruct or control the reading
|
|---|
| 1476 | or further copying of the copies you make or distribute. However,
|
|---|
| 1477 | you may accept compensation in exchange for copies. If you
|
|---|
| 1478 | distribute a large enough number of copies you must also follow
|
|---|
| 1479 | the conditions in section 3.
|
|---|
| 1480 |
|
|---|
| 1481 | You may also lend copies, under the same conditions stated above,
|
|---|
| 1482 | and you may publicly display copies.
|
|---|
| 1483 |
|
|---|
| 1484 | 3. COPYING IN QUANTITY
|
|---|
| 1485 |
|
|---|
| 1486 | If you publish printed copies (or copies in media that commonly
|
|---|
| 1487 | have printed covers) of the Document, numbering more than 100, and
|
|---|
| 1488 | the Document's license notice requires Cover Texts, you must
|
|---|
| 1489 | enclose the copies in covers that carry, clearly and legibly, all
|
|---|
| 1490 | these Cover Texts: Front-Cover Texts on the front cover, and
|
|---|
| 1491 | Back-Cover Texts on the back cover. Both covers must also clearly
|
|---|
| 1492 | and legibly identify you as the publisher of these copies. The
|
|---|
| 1493 | front cover must present the full title with all words of the
|
|---|
| 1494 | title equally prominent and visible. You may add other material
|
|---|
| 1495 | on the covers in addition. Copying with changes limited to the
|
|---|
| 1496 | covers, as long as they preserve the title of the Document and
|
|---|
| 1497 | satisfy these conditions, can be treated as verbatim copying in
|
|---|
| 1498 | other respects.
|
|---|
| 1499 |
|
|---|
| 1500 | If the required texts for either cover are too voluminous to fit
|
|---|
| 1501 | legibly, you should put the first ones listed (as many as fit
|
|---|
| 1502 | reasonably) on the actual cover, and continue the rest onto
|
|---|
| 1503 | adjacent pages.
|
|---|
| 1504 |
|
|---|
| 1505 | If you publish or distribute Opaque copies of the Document
|
|---|
| 1506 | numbering more than 100, you must either include a
|
|---|
| 1507 | machine-readable Transparent copy along with each Opaque copy, or
|
|---|
| 1508 | state in or with each Opaque copy a computer-network location from
|
|---|
| 1509 | which the general network-using public has access to download
|
|---|
| 1510 | using public-standard network protocols a complete Transparent
|
|---|
| 1511 | copy of the Document, free of added material. If you use the
|
|---|
| 1512 | latter option, you must take reasonably prudent steps, when you
|
|---|
| 1513 | begin distribution of Opaque copies in quantity, to ensure that
|
|---|
| 1514 | this Transparent copy will remain thus accessible at the stated
|
|---|
| 1515 | location until at least one year after the last time you
|
|---|
| 1516 | distribute an Opaque copy (directly or through your agents or
|
|---|
| 1517 | retailers) of that edition to the public.
|
|---|
| 1518 |
|
|---|
| 1519 | It is requested, but not required, that you contact the authors of
|
|---|
| 1520 | the Document well before redistributing any large number of
|
|---|
| 1521 | copies, to give them a chance to provide you with an updated
|
|---|
| 1522 | version of the Document.
|
|---|
| 1523 |
|
|---|
| 1524 | 4. MODIFICATIONS
|
|---|
| 1525 |
|
|---|
| 1526 | You may copy and distribute a Modified Version of the Document
|
|---|
| 1527 | under the conditions of sections 2 and 3 above, provided that you
|
|---|
| 1528 | release the Modified Version under precisely this License, with
|
|---|
| 1529 | the Modified Version filling the role of the Document, thus
|
|---|
| 1530 | licensing distribution and modification of the Modified Version to
|
|---|
| 1531 | whoever possesses a copy of it. In addition, you must do these
|
|---|
| 1532 | things in the Modified Version:
|
|---|
| 1533 |
|
|---|
| 1534 | A. Use in the Title Page (and on the covers, if any) a title
|
|---|
| 1535 | distinct from that of the Document, and from those of
|
|---|
| 1536 | previous versions (which should, if there were any, be listed
|
|---|
| 1537 | in the History section of the Document). You may use the
|
|---|
| 1538 | same title as a previous version if the original publisher of
|
|---|
| 1539 | that version gives permission.
|
|---|
| 1540 |
|
|---|
| 1541 | B. List on the Title Page, as authors, one or more persons or
|
|---|
| 1542 | entities responsible for authorship of the modifications in
|
|---|
| 1543 | the Modified Version, together with at least five of the
|
|---|
| 1544 | principal authors of the Document (all of its principal
|
|---|
| 1545 | authors, if it has fewer than five), unless they release you
|
|---|
| 1546 | from this requirement.
|
|---|
| 1547 |
|
|---|
| 1548 | C. State on the Title page the name of the publisher of the
|
|---|
| 1549 | Modified Version, as the publisher.
|
|---|
| 1550 |
|
|---|
| 1551 | D. Preserve all the copyright notices of the Document.
|
|---|
| 1552 |
|
|---|
| 1553 | E. Add an appropriate copyright notice for your modifications
|
|---|
| 1554 | adjacent to the other copyright notices.
|
|---|
| 1555 |
|
|---|
| 1556 | F. Include, immediately after the copyright notices, a license
|
|---|
| 1557 | notice giving the public permission to use the Modified
|
|---|
| 1558 | Version under the terms of this License, in the form shown in
|
|---|
| 1559 | the Addendum below.
|
|---|
| 1560 |
|
|---|
| 1561 | G. Preserve in that license notice the full lists of Invariant
|
|---|
| 1562 | Sections and required Cover Texts given in the Document's
|
|---|
| 1563 | license notice.
|
|---|
| 1564 |
|
|---|
| 1565 | H. Include an unaltered copy of this License.
|
|---|
| 1566 |
|
|---|
| 1567 | I. Preserve the section Entitled "History", Preserve its Title,
|
|---|
| 1568 | and add to it an item stating at least the title, year, new
|
|---|
| 1569 | authors, and publisher of the Modified Version as given on
|
|---|
| 1570 | the Title Page. If there is no section Entitled "History" in
|
|---|
| 1571 | the Document, create one stating the title, year, authors,
|
|---|
| 1572 | and publisher of the Document as given on its Title Page,
|
|---|
| 1573 | then add an item describing the Modified Version as stated in
|
|---|
| 1574 | the previous sentence.
|
|---|
| 1575 |
|
|---|
| 1576 | J. Preserve the network location, if any, given in the Document
|
|---|
| 1577 | for public access to a Transparent copy of the Document, and
|
|---|
| 1578 | likewise the network locations given in the Document for
|
|---|
| 1579 | previous versions it was based on. These may be placed in
|
|---|
| 1580 | the "History" section. You may omit a network location for a
|
|---|
| 1581 | work that was published at least four years before the
|
|---|
| 1582 | Document itself, or if the original publisher of the version
|
|---|
| 1583 | it refers to gives permission.
|
|---|
| 1584 |
|
|---|
| 1585 | K. For any section Entitled "Acknowledgements" or "Dedications",
|
|---|
| 1586 | Preserve the Title of the section, and preserve in the
|
|---|
| 1587 | section all the substance and tone of each of the contributor
|
|---|
| 1588 | acknowledgements and/or dedications given therein.
|
|---|
| 1589 |
|
|---|
| 1590 | L. Preserve all the Invariant Sections of the Document,
|
|---|
| 1591 | unaltered in their text and in their titles. Section numbers
|
|---|
| 1592 | or the equivalent are not considered part of the section
|
|---|
| 1593 | titles.
|
|---|
| 1594 |
|
|---|
| 1595 | M. Delete any section Entitled "Endorsements". Such a section
|
|---|
| 1596 | may not be included in the Modified Version.
|
|---|
| 1597 |
|
|---|
| 1598 | N. Do not retitle any existing section to be Entitled
|
|---|
| 1599 | "Endorsements" or to conflict in title with any Invariant
|
|---|
| 1600 | Section.
|
|---|
| 1601 |
|
|---|
| 1602 | O. Preserve any Warranty Disclaimers.
|
|---|
| 1603 |
|
|---|
| 1604 | If the Modified Version includes new front-matter sections or
|
|---|
| 1605 | appendices that qualify as Secondary Sections and contain no
|
|---|
| 1606 | material copied from the Document, you may at your option
|
|---|
| 1607 | designate some or all of these sections as invariant. To do this,
|
|---|
| 1608 | add their titles to the list of Invariant Sections in the Modified
|
|---|
| 1609 | Version's license notice. These titles must be distinct from any
|
|---|
| 1610 | other section titles.
|
|---|
| 1611 |
|
|---|
| 1612 | You may add a section Entitled "Endorsements", provided it contains
|
|---|
| 1613 | nothing but endorsements of your Modified Version by various
|
|---|
| 1614 | parties--for example, statements of peer review or that the text
|
|---|
| 1615 | has been approved by an organization as the authoritative
|
|---|
| 1616 | definition of a standard.
|
|---|
| 1617 |
|
|---|
| 1618 | You may add a passage of up to five words as a Front-Cover Text,
|
|---|
| 1619 | and a passage of up to 25 words as a Back-Cover Text, to the end
|
|---|
| 1620 | of the list of Cover Texts in the Modified Version. Only one
|
|---|
| 1621 | passage of Front-Cover Text and one of Back-Cover Text may be
|
|---|
| 1622 | added by (or through arrangements made by) any one entity. If the
|
|---|
| 1623 | Document already includes a cover text for the same cover,
|
|---|
| 1624 | previously added by you or by arrangement made by the same entity
|
|---|
| 1625 | you are acting on behalf of, you may not add another; but you may
|
|---|
| 1626 | replace the old one, on explicit permission from the previous
|
|---|
| 1627 | publisher that added the old one.
|
|---|
| 1628 |
|
|---|
| 1629 | The author(s) and publisher(s) of the Document do not by this
|
|---|
| 1630 | License give permission to use their names for publicity for or to
|
|---|
| 1631 | assert or imply endorsement of any Modified Version.
|
|---|
| 1632 |
|
|---|
| 1633 | 5. COMBINING DOCUMENTS
|
|---|
| 1634 |
|
|---|
| 1635 | You may combine the Document with other documents released under
|
|---|
| 1636 | this License, under the terms defined in section 4 above for
|
|---|
| 1637 | modified versions, provided that you include in the combination
|
|---|
| 1638 | all of the Invariant Sections of all of the original documents,
|
|---|
| 1639 | unmodified, and list them all as Invariant Sections of your
|
|---|
| 1640 | combined work in its license notice, and that you preserve all
|
|---|
| 1641 | their Warranty Disclaimers.
|
|---|
| 1642 |
|
|---|
| 1643 | The combined work need only contain one copy of this License, and
|
|---|
| 1644 | multiple identical Invariant Sections may be replaced with a single
|
|---|
| 1645 | copy. If there are multiple Invariant Sections with the same name
|
|---|
| 1646 | but different contents, make the title of each such section unique
|
|---|
| 1647 | by adding at the end of it, in parentheses, the name of the
|
|---|
| 1648 | original author or publisher of that section if known, or else a
|
|---|
| 1649 | unique number. Make the same adjustment to the section titles in
|
|---|
| 1650 | the list of Invariant Sections in the license notice of the
|
|---|
| 1651 | combined work.
|
|---|
| 1652 |
|
|---|
| 1653 | In the combination, you must combine any sections Entitled
|
|---|
| 1654 | "History" in the various original documents, forming one section
|
|---|
| 1655 | Entitled "History"; likewise combine any sections Entitled
|
|---|
| 1656 | "Acknowledgements", and any sections Entitled "Dedications". You
|
|---|
| 1657 | must delete all sections Entitled "Endorsements."
|
|---|
| 1658 |
|
|---|
| 1659 | 6. COLLECTIONS OF DOCUMENTS
|
|---|
| 1660 |
|
|---|
| 1661 | You may make a collection consisting of the Document and other
|
|---|
| 1662 | documents released under this License, and replace the individual
|
|---|
| 1663 | copies of this License in the various documents with a single copy
|
|---|
| 1664 | that is included in the collection, provided that you follow the
|
|---|
| 1665 | rules of this License for verbatim copying of each of the
|
|---|
| 1666 | documents in all other respects.
|
|---|
| 1667 |
|
|---|
| 1668 | You may extract a single document from such a collection, and
|
|---|
| 1669 | distribute it individually under this License, provided you insert
|
|---|
| 1670 | a copy of this License into the extracted document, and follow
|
|---|
| 1671 | this License in all other respects regarding verbatim copying of
|
|---|
| 1672 | that document.
|
|---|
| 1673 |
|
|---|
| 1674 | 7. AGGREGATION WITH INDEPENDENT WORKS
|
|---|
| 1675 |
|
|---|
| 1676 | A compilation of the Document or its derivatives with other
|
|---|
| 1677 | separate and independent documents or works, in or on a volume of
|
|---|
| 1678 | a storage or distribution medium, is called an "aggregate" if the
|
|---|
| 1679 | copyright resulting from the compilation is not used to limit the
|
|---|
| 1680 | legal rights of the compilation's users beyond what the individual
|
|---|
| 1681 | works permit. When the Document is included in an aggregate, this
|
|---|
| 1682 | License does not apply to the other works in the aggregate which
|
|---|
| 1683 | are not themselves derivative works of the Document.
|
|---|
| 1684 |
|
|---|
| 1685 | If the Cover Text requirement of section 3 is applicable to these
|
|---|
| 1686 | copies of the Document, then if the Document is less than one half
|
|---|
| 1687 | of the entire aggregate, the Document's Cover Texts may be placed
|
|---|
| 1688 | on covers that bracket the Document within the aggregate, or the
|
|---|
| 1689 | electronic equivalent of covers if the Document is in electronic
|
|---|
| 1690 | form. Otherwise they must appear on printed covers that bracket
|
|---|
| 1691 | the whole aggregate.
|
|---|
| 1692 |
|
|---|
| 1693 | 8. TRANSLATION
|
|---|
| 1694 |
|
|---|
| 1695 | Translation is considered a kind of modification, so you may
|
|---|
| 1696 | distribute translations of the Document under the terms of section
|
|---|
| 1697 | 4. Replacing Invariant Sections with translations requires special
|
|---|
| 1698 | permission from their copyright holders, but you may include
|
|---|
| 1699 | translations of some or all Invariant Sections in addition to the
|
|---|
| 1700 | original versions of these Invariant Sections. You may include a
|
|---|
| 1701 | translation of this License, and all the license notices in the
|
|---|
| 1702 | Document, and any Warranty Disclaimers, provided that you also
|
|---|
| 1703 | include the original English version of this License and the
|
|---|
| 1704 | original versions of those notices and disclaimers. In case of a
|
|---|
| 1705 | disagreement between the translation and the original version of
|
|---|
| 1706 | this License or a notice or disclaimer, the original version will
|
|---|
| 1707 | prevail.
|
|---|
| 1708 |
|
|---|
| 1709 | If a section in the Document is Entitled "Acknowledgements",
|
|---|
| 1710 | "Dedications", or "History", the requirement (section 4) to
|
|---|
| 1711 | Preserve its Title (section 1) will typically require changing the
|
|---|
| 1712 | actual title.
|
|---|
| 1713 |
|
|---|
| 1714 | 9. TERMINATION
|
|---|
| 1715 |
|
|---|
| 1716 | You may not copy, modify, sublicense, or distribute the Document
|
|---|
| 1717 | except as expressly provided under this License. Any attempt
|
|---|
| 1718 | otherwise to copy, modify, sublicense, or distribute it is void,
|
|---|
| 1719 | and will automatically terminate your rights under this License.
|
|---|
| 1720 |
|
|---|
| 1721 | However, if you cease all violation of this License, then your
|
|---|
| 1722 | license from a particular copyright holder is reinstated (a)
|
|---|
| 1723 | provisionally, unless and until the copyright holder explicitly
|
|---|
| 1724 | and finally terminates your license, and (b) permanently, if the
|
|---|
| 1725 | copyright holder fails to notify you of the violation by some
|
|---|
| 1726 | reasonable means prior to 60 days after the cessation.
|
|---|
| 1727 |
|
|---|
| 1728 | Moreover, your license from a particular copyright holder is
|
|---|
| 1729 | reinstated permanently if the copyright holder notifies you of the
|
|---|
| 1730 | violation by some reasonable means, this is the first time you have
|
|---|
| 1731 | received notice of violation of this License (for any work) from
|
|---|
| 1732 | that copyright holder, and you cure the violation prior to 30 days
|
|---|
| 1733 | after your receipt of the notice.
|
|---|
| 1734 |
|
|---|
| 1735 | Termination of your rights under this section does not terminate
|
|---|
| 1736 | the licenses of parties who have received copies or rights from
|
|---|
| 1737 | you under this License. If your rights have been terminated and
|
|---|
| 1738 | not permanently reinstated, receipt of a copy of some or all of
|
|---|
| 1739 | the same material does not give you any rights to use it.
|
|---|
| 1740 |
|
|---|
| 1741 | 10. FUTURE REVISIONS OF THIS LICENSE
|
|---|
| 1742 |
|
|---|
| 1743 | The Free Software Foundation may publish new, revised versions of
|
|---|
| 1744 | the GNU Free Documentation License from time to time. Such new
|
|---|
| 1745 | versions will be similar in spirit to the present version, but may
|
|---|
| 1746 | differ in detail to address new problems or concerns. See
|
|---|
| 1747 | `http://www.gnu.org/copyleft/'.
|
|---|
| 1748 |
|
|---|
| 1749 | Each version of the License is given a distinguishing version
|
|---|
| 1750 | number. If the Document specifies that a particular numbered
|
|---|
| 1751 | version of this License "or any later version" applies to it, you
|
|---|
| 1752 | have the option of following the terms and conditions either of
|
|---|
| 1753 | that specified version or of any later version that has been
|
|---|
| 1754 | published (not as a draft) by the Free Software Foundation. If
|
|---|
| 1755 | the Document does not specify a version number of this License,
|
|---|
| 1756 | you may choose any version ever published (not as a draft) by the
|
|---|
| 1757 | Free Software Foundation. If the Document specifies that a proxy
|
|---|
| 1758 | can decide which future versions of this License can be used, that
|
|---|
| 1759 | proxy's public statement of acceptance of a version permanently
|
|---|
| 1760 | authorizes you to choose that version for the Document.
|
|---|
| 1761 |
|
|---|
| 1762 | 11. RELICENSING
|
|---|
| 1763 |
|
|---|
| 1764 | "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
|---|
| 1765 | World Wide Web server that publishes copyrightable works and also
|
|---|
| 1766 | provides prominent facilities for anybody to edit those works. A
|
|---|
| 1767 | public wiki that anybody can edit is an example of such a server.
|
|---|
| 1768 | A "Massive Multiauthor Collaboration" (or "MMC") contained in the
|
|---|
| 1769 | site means any set of copyrightable works thus published on the MMC
|
|---|
| 1770 | site.
|
|---|
| 1771 |
|
|---|
| 1772 | "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
|---|
| 1773 | license published by Creative Commons Corporation, a not-for-profit
|
|---|
| 1774 | corporation with a principal place of business in San Francisco,
|
|---|
| 1775 | California, as well as future copyleft versions of that license
|
|---|
| 1776 | published by that same organization.
|
|---|
| 1777 |
|
|---|
| 1778 | "Incorporate" means to publish or republish a Document, in whole or
|
|---|
| 1779 | in part, as part of another Document.
|
|---|
| 1780 |
|
|---|
| 1781 | An MMC is "eligible for relicensing" if it is licensed under this
|
|---|
| 1782 | License, and if all works that were first published under this
|
|---|
| 1783 | License somewhere other than this MMC, and subsequently
|
|---|
| 1784 | incorporated in whole or in part into the MMC, (1) had no cover
|
|---|
| 1785 | texts or invariant sections, and (2) were thus incorporated prior
|
|---|
| 1786 | to November 1, 2008.
|
|---|
| 1787 |
|
|---|
| 1788 | The operator of an MMC Site may republish an MMC contained in the
|
|---|
| 1789 | site under CC-BY-SA on the same site at any time before August 1,
|
|---|
| 1790 | 2009, provided the MMC is eligible for relicensing.
|
|---|
| 1791 |
|
|---|
| 1792 |
|
|---|
| 1793 | ADDENDUM: How to use this License for your documents
|
|---|
| 1794 | ====================================================
|
|---|
| 1795 |
|
|---|
| 1796 | To use this License in a document you have written, include a copy of
|
|---|
| 1797 | the License in the document and put the following copyright and license
|
|---|
| 1798 | notices just after the title page:
|
|---|
| 1799 |
|
|---|
| 1800 | Copyright (C) YEAR YOUR NAME.
|
|---|
| 1801 | Permission is granted to copy, distribute and/or modify this document
|
|---|
| 1802 | under the terms of the GNU Free Documentation License, Version 1.3
|
|---|
| 1803 | or any later version published by the Free Software Foundation;
|
|---|
| 1804 | with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
|---|
| 1805 | Texts. A copy of the license is included in the section entitled ``GNU
|
|---|
| 1806 | Free Documentation License''.
|
|---|
| 1807 |
|
|---|
| 1808 | If you have Invariant Sections, Front-Cover Texts and Back-Cover
|
|---|
| 1809 | Texts, replace the "with...Texts." line with this:
|
|---|
| 1810 |
|
|---|
| 1811 | with the Invariant Sections being LIST THEIR TITLES, with
|
|---|
| 1812 | the Front-Cover Texts being LIST, and with the Back-Cover Texts
|
|---|
| 1813 | being LIST.
|
|---|
| 1814 |
|
|---|
| 1815 | If you have Invariant Sections without Cover Texts, or some other
|
|---|
| 1816 | combination of the three, merge those two alternatives to suit the
|
|---|
| 1817 | situation.
|
|---|
| 1818 |
|
|---|
| 1819 | If your document contains nontrivial examples of program code, we
|
|---|
| 1820 | recommend releasing these examples in parallel under your choice of
|
|---|
| 1821 | free software license, such as the GNU General Public License, to
|
|---|
| 1822 | permit their use in free software.
|
|---|
| 1823 |
|
|---|
| 1824 |
|
|---|
| 1825 | File: grep.info, Node: Index, Prev: Copying, Up: Top
|
|---|
| 1826 |
|
|---|
| 1827 | Index
|
|---|
| 1828 | *****
|
|---|
| 1829 |
|
|---|
| 1830 | [index]
|
|---|
| 1831 | * Menu:
|
|---|
| 1832 |
|
|---|
| 1833 | * *: Fundamental Structure.
|
|---|
| 1834 | (line 21)
|
|---|
| 1835 | * +: Fundamental Structure.
|
|---|
| 1836 | (line 24)
|
|---|
| 1837 | * --after-context: Context Line Control.
|
|---|
| 1838 | (line 13)
|
|---|
| 1839 | * --basic-regexp: grep Programs. (line 16)
|
|---|
| 1840 | * --before-context: Context Line Control.
|
|---|
| 1841 | (line 17)
|
|---|
| 1842 | * --binary: Other Options. (line 19)
|
|---|
| 1843 | * --binary-files: File and Directory Selection.
|
|---|
| 1844 | (line 12)
|
|---|
| 1845 | * --byte-offset: Output Line Prefix Control.
|
|---|
| 1846 | (line 12)
|
|---|
| 1847 | * --color: General Output Control.
|
|---|
| 1848 | (line 14)
|
|---|
| 1849 | * --colour: General Output Control.
|
|---|
| 1850 | (line 14)
|
|---|
| 1851 | * --context: Context Line Control.
|
|---|
| 1852 | (line 22)
|
|---|
| 1853 | * --count: General Output Control.
|
|---|
| 1854 | (line 8)
|
|---|
| 1855 | * --dereference-recursive: File and Directory Selection.
|
|---|
| 1856 | (line 82)
|
|---|
| 1857 | * --devices: File and Directory Selection.
|
|---|
| 1858 | (line 30)
|
|---|
| 1859 | * --directories: File and Directory Selection.
|
|---|
| 1860 | (line 42)
|
|---|
| 1861 | * --exclude: File and Directory Selection.
|
|---|
| 1862 | (line 53)
|
|---|
| 1863 | * --exclude-dir: File and Directory Selection.
|
|---|
| 1864 | (line 62)
|
|---|
| 1865 | * --exclude-from: File and Directory Selection.
|
|---|
| 1866 | (line 58)
|
|---|
| 1867 | * --extended-regexp: grep Programs. (line 21)
|
|---|
| 1868 | * --file: Matching Control. (line 14)
|
|---|
| 1869 | * --files-with-matches: General Output Control.
|
|---|
| 1870 | (line 35)
|
|---|
| 1871 | * --files-without-match: General Output Control.
|
|---|
| 1872 | (line 29)
|
|---|
| 1873 | * --fixed-strings: grep Programs. (line 26)
|
|---|
| 1874 | * --group-separator: Context Line Control.
|
|---|
| 1875 | (line 25)
|
|---|
| 1876 | * --help: Generic Program Information.
|
|---|
| 1877 | (line 7)
|
|---|
| 1878 | * --ignore-case: Matching Control. (line 21)
|
|---|
| 1879 | * --include: File and Directory Selection.
|
|---|
| 1880 | (line 70)
|
|---|
| 1881 | * --initial-tab: Output Line Prefix Control.
|
|---|
| 1882 | (line 43)
|
|---|
| 1883 | * --invert-match: Matching Control. (line 27)
|
|---|
| 1884 | * --label: Output Line Prefix Control.
|
|---|
| 1885 | (line 30)
|
|---|
| 1886 | * --line-buffered: Other Options. (line 7)
|
|---|
| 1887 | * --line-number: Output Line Prefix Control.
|
|---|
| 1888 | (line 38)
|
|---|
| 1889 | * --line-regexp: Matching Control. (line 41)
|
|---|
| 1890 | * --max-count: General Output Control.
|
|---|
| 1891 | (line 42)
|
|---|
| 1892 | * --mmap: Other Options. (line 11)
|
|---|
| 1893 | * --no-filename: Output Line Prefix Control.
|
|---|
| 1894 | (line 25)
|
|---|
| 1895 | * --no-messages: General Output Control.
|
|---|
| 1896 | (line 88)
|
|---|
| 1897 | * --null: Output Line Prefix Control.
|
|---|
| 1898 | (line 63)
|
|---|
| 1899 | * --null-data: Other Options. (line 33)
|
|---|
| 1900 | * --only-matching: General Output Control.
|
|---|
| 1901 | (line 75)
|
|---|
| 1902 | * --perl-regexp: grep Programs. (line 32)
|
|---|
| 1903 | * --quiet: General Output Control.
|
|---|
| 1904 | (line 81)
|
|---|
| 1905 | * --recursive: File and Directory Selection.
|
|---|
| 1906 | (line 75)
|
|---|
| 1907 | * --regexp=PATTERN: Matching Control. (line 8)
|
|---|
| 1908 | * --silent: General Output Control.
|
|---|
| 1909 | (line 81)
|
|---|
| 1910 | * --text: File and Directory Selection.
|
|---|
| 1911 | (line 8)
|
|---|
| 1912 | * --unix-byte-offsets: Output Line Prefix Control.
|
|---|
| 1913 | (line 53)
|
|---|
| 1914 | * --version: Generic Program Information.
|
|---|
| 1915 | (line 12)
|
|---|
| 1916 | * --with-filename: Output Line Prefix Control.
|
|---|
| 1917 | (line 20)
|
|---|
| 1918 | * --word-regexp: Matching Control. (line 32)
|
|---|
| 1919 | * -a: File and Directory Selection.
|
|---|
| 1920 | (line 8)
|
|---|
| 1921 | * -A: Context Line Control.
|
|---|
| 1922 | (line 13)
|
|---|
| 1923 | * -B: Context Line Control.
|
|---|
| 1924 | (line 17)
|
|---|
| 1925 | * -b: Output Line Prefix Control.
|
|---|
| 1926 | (line 12)
|
|---|
| 1927 | * -C: Context Line Control.
|
|---|
| 1928 | (line 22)
|
|---|
| 1929 | * -c: General Output Control.
|
|---|
| 1930 | (line 8)
|
|---|
| 1931 | * -d: File and Directory Selection.
|
|---|
| 1932 | (line 42)
|
|---|
| 1933 | * -D: File and Directory Selection.
|
|---|
| 1934 | (line 30)
|
|---|
| 1935 | * -E: grep Programs. (line 21)
|
|---|
| 1936 | * -e: Matching Control. (line 8)
|
|---|
| 1937 | * -F: grep Programs. (line 26)
|
|---|
| 1938 | * -f: Matching Control. (line 14)
|
|---|
| 1939 | * -G: grep Programs. (line 16)
|
|---|
| 1940 | * -h: Output Line Prefix Control.
|
|---|
| 1941 | (line 25)
|
|---|
| 1942 | * -H: Output Line Prefix Control.
|
|---|
| 1943 | (line 20)
|
|---|
| 1944 | * -i: Matching Control. (line 21)
|
|---|
| 1945 | * -l: General Output Control.
|
|---|
| 1946 | (line 35)
|
|---|
| 1947 | * -L: General Output Control.
|
|---|
| 1948 | (line 29)
|
|---|
| 1949 | * -m: General Output Control.
|
|---|
| 1950 | (line 42)
|
|---|
| 1951 | * -n: Output Line Prefix Control.
|
|---|
| 1952 | (line 38)
|
|---|
| 1953 | * -NUM: Context Line Control.
|
|---|
| 1954 | (line 22)
|
|---|
| 1955 | * -o: General Output Control.
|
|---|
| 1956 | (line 75)
|
|---|
| 1957 | * -P: grep Programs. (line 32)
|
|---|
| 1958 | * -q: General Output Control.
|
|---|
| 1959 | (line 81)
|
|---|
| 1960 | * -R: File and Directory Selection.
|
|---|
| 1961 | (line 82)
|
|---|
| 1962 | * -r: File and Directory Selection.
|
|---|
| 1963 | (line 75)
|
|---|
| 1964 | * -s: General Output Control.
|
|---|
| 1965 | (line 88)
|
|---|
| 1966 | * -T: Output Line Prefix Control.
|
|---|
| 1967 | (line 43)
|
|---|
| 1968 | * -U: Other Options. (line 19)
|
|---|
| 1969 | * -u: Output Line Prefix Control.
|
|---|
| 1970 | (line 53)
|
|---|
| 1971 | * -v: Matching Control. (line 27)
|
|---|
| 1972 | * -V: Generic Program Information.
|
|---|
| 1973 | (line 12)
|
|---|
| 1974 | * -w: Matching Control. (line 32)
|
|---|
| 1975 | * -x: Matching Control. (line 41)
|
|---|
| 1976 | * -y: Matching Control. (line 21)
|
|---|
| 1977 | * -z: Other Options. (line 33)
|
|---|
| 1978 | * -Z: Output Line Prefix Control.
|
|---|
| 1979 | (line 63)
|
|---|
| 1980 | * .: Fundamental Structure.
|
|---|
| 1981 | (line 15)
|
|---|
| 1982 | * ?: Fundamental Structure.
|
|---|
| 1983 | (line 18)
|
|---|
| 1984 | * _N_GNU_nonoption_argv_flags_ environment variable: Environment Variables.
|
|---|
| 1985 | (line 189)
|
|---|
| 1986 | * after context: Context Line Control.
|
|---|
| 1987 | (line 13)
|
|---|
| 1988 | * alnum character class: Character Classes and Bracket Expressions.
|
|---|
| 1989 | (line 29)
|
|---|
| 1990 | * alpha character class: Character Classes and Bracket Expressions.
|
|---|
| 1991 | (line 34)
|
|---|
| 1992 | * alphabetic characters: Character Classes and Bracket Expressions.
|
|---|
| 1993 | (line 34)
|
|---|
| 1994 | * alphanumeric characters: Character Classes and Bracket Expressions.
|
|---|
| 1995 | (line 29)
|
|---|
| 1996 | * anchoring: Anchoring. (line 6)
|
|---|
| 1997 | * asterisk: Fundamental Structure.
|
|---|
| 1998 | (line 21)
|
|---|
| 1999 | * back-reference: Back-references and Subexpressions.
|
|---|
| 2000 | (line 6)
|
|---|
| 2001 | * backslash: The Backslash Character and Special Expressions.
|
|---|
| 2002 | (line 6)
|
|---|
| 2003 | * basic regular expressions: Basic vs Extended. (line 6)
|
|---|
| 2004 | * before context: Context Line Control.
|
|---|
| 2005 | (line 17)
|
|---|
| 2006 | * binary files: File and Directory Selection.
|
|---|
| 2007 | (line 8)
|
|---|
| 2008 | * binary files, MS-DOS/MS-Windows: Other Options. (line 19)
|
|---|
| 2009 | * blank character class: Character Classes and Bracket Expressions.
|
|---|
| 2010 | (line 39)
|
|---|
| 2011 | * blank characters: Character Classes and Bracket Expressions.
|
|---|
| 2012 | (line 39)
|
|---|
| 2013 | * bn GREP_COLORS capability: Environment Variables.
|
|---|
| 2014 | (line 134)
|
|---|
| 2015 | * braces, first argument omitted: Fundamental Structure.
|
|---|
| 2016 | (line 33)
|
|---|
| 2017 | * braces, one argument: Fundamental Structure.
|
|---|
| 2018 | (line 27)
|
|---|
| 2019 | * braces, second argument omitted: Fundamental Structure.
|
|---|
| 2020 | (line 30)
|
|---|
| 2021 | * braces, two arguments: Fundamental Structure.
|
|---|
| 2022 | (line 36)
|
|---|
| 2023 | * bracket expression: Character Classes and Bracket Expressions.
|
|---|
| 2024 | (line 6)
|
|---|
| 2025 | * Bugs, known: Reporting Bugs. (line 14)
|
|---|
| 2026 | * bugs, reporting: Reporting Bugs. (line 6)
|
|---|
| 2027 | * byte offset: Output Line Prefix Control.
|
|---|
| 2028 | (line 12)
|
|---|
| 2029 | * byte offsets, on MS-DOS/MS-Windows: Output Line Prefix Control.
|
|---|
| 2030 | (line 53)
|
|---|
| 2031 | * case insensitive search: Matching Control. (line 21)
|
|---|
| 2032 | * changing name of standard input: Output Line Prefix Control.
|
|---|
| 2033 | (line 30)
|
|---|
| 2034 | * character class: Character Classes and Bracket Expressions.
|
|---|
| 2035 | (line 6)
|
|---|
| 2036 | * character classes: Character Classes and Bracket Expressions.
|
|---|
| 2037 | (line 28)
|
|---|
| 2038 | * character type: Environment Variables.
|
|---|
| 2039 | (line 161)
|
|---|
| 2040 | * classes of characters: Character Classes and Bracket Expressions.
|
|---|
| 2041 | (line 28)
|
|---|
| 2042 | * cntrl character class: Character Classes and Bracket Expressions.
|
|---|
| 2043 | (line 42)
|
|---|
| 2044 | * context: Context Line Control.
|
|---|
| 2045 | (line 22)
|
|---|
| 2046 | * context lines, after match: Context Line Control.
|
|---|
| 2047 | (line 13)
|
|---|
| 2048 | * context lines, before match: Context Line Control.
|
|---|
| 2049 | (line 17)
|
|---|
| 2050 | * control characters: Character Classes and Bracket Expressions.
|
|---|
| 2051 | (line 42)
|
|---|
| 2052 | * copying: Copying. (line 6)
|
|---|
| 2053 | * counting lines: General Output Control.
|
|---|
| 2054 | (line 8)
|
|---|
| 2055 | * cx GREP_COLORS capability: Environment Variables.
|
|---|
| 2056 | (line 85)
|
|---|
| 2057 | * default options environment variable: Environment Variables.
|
|---|
| 2058 | (line 41)
|
|---|
| 2059 | * device search: File and Directory Selection.
|
|---|
| 2060 | (line 30)
|
|---|
| 2061 | * digit character class: Character Classes and Bracket Expressions.
|
|---|
| 2062 | (line 47)
|
|---|
| 2063 | * digit characters: Character Classes and Bracket Expressions.
|
|---|
| 2064 | (line 47)
|
|---|
| 2065 | * directory search: File and Directory Selection.
|
|---|
| 2066 | (line 42)
|
|---|
| 2067 | * dot: Fundamental Structure.
|
|---|
| 2068 | (line 15)
|
|---|
| 2069 | * environment variables: Environment Variables.
|
|---|
| 2070 | (line 40)
|
|---|
| 2071 | * exclude directories: File and Directory Selection.
|
|---|
| 2072 | (line 62)
|
|---|
| 2073 | * exclude files: File and Directory Selection.
|
|---|
| 2074 | (line 53)
|
|---|
| 2075 | * exit status: Exit Status. (line 6)
|
|---|
| 2076 | * FAQ about grep usage: Usage. (line 17)
|
|---|
| 2077 | * files which don't match: General Output Control.
|
|---|
| 2078 | (line 29)
|
|---|
| 2079 | * fn GREP_COLORS capability: Environment Variables.
|
|---|
| 2080 | (line 124)
|
|---|
| 2081 | * graph character class: Character Classes and Bracket Expressions.
|
|---|
| 2082 | (line 50)
|
|---|
| 2083 | * graphic characters: Character Classes and Bracket Expressions.
|
|---|
| 2084 | (line 50)
|
|---|
| 2085 | * grep programs: grep Programs. (line 6)
|
|---|
| 2086 | * GREP_COLOR environment variable: Environment Variables.
|
|---|
| 2087 | (line 58)
|
|---|
| 2088 | * GREP_COLORS environment variable: Environment Variables.
|
|---|
| 2089 | (line 69)
|
|---|
| 2090 | * GREP_OPTIONS environment variable: Environment Variables.
|
|---|
| 2091 | (line 41)
|
|---|
| 2092 | * group separator: Context Line Control.
|
|---|
| 2093 | (line 25)
|
|---|
| 2094 | * hexadecimal digits: Character Classes and Bracket Expressions.
|
|---|
| 2095 | (line 76)
|
|---|
| 2096 | * highlight markers: Environment Variables.
|
|---|
| 2097 | (line 58)
|
|---|
| 2098 | * highlight, color, colour: General Output Control.
|
|---|
| 2099 | (line 14)
|
|---|
| 2100 | * include files: File and Directory Selection.
|
|---|
| 2101 | (line 70)
|
|---|
| 2102 | * interval specifications: Basic vs Extended. (line 10)
|
|---|
| 2103 | * invert matching: Matching Control. (line 27)
|
|---|
| 2104 | * LANG environment variable: Environment Variables.
|
|---|
| 2105 | (line 161)
|
|---|
| 2106 | * language of messages: Environment Variables.
|
|---|
| 2107 | (line 175)
|
|---|
| 2108 | * LC_ALL environment variable: Environment Variables.
|
|---|
| 2109 | (line 161)
|
|---|
| 2110 | * LC_COLLATE environment variable: Environment Variables.
|
|---|
| 2111 | (line 161)
|
|---|
| 2112 | * LC_CTYPE environment variable: Environment Variables.
|
|---|
| 2113 | (line 168)
|
|---|
| 2114 | * LC_MESSAGES environment variable: Environment Variables.
|
|---|
| 2115 | (line 175)
|
|---|
| 2116 | * line buffering: Other Options. (line 7)
|
|---|
| 2117 | * line numbering: Output Line Prefix Control.
|
|---|
| 2118 | (line 38)
|
|---|
| 2119 | * ln GREP_COLORS capability: Environment Variables.
|
|---|
| 2120 | (line 129)
|
|---|
| 2121 | * lower character class: Character Classes and Bracket Expressions.
|
|---|
| 2122 | (line 53)
|
|---|
| 2123 | * lower-case letters: Character Classes and Bracket Expressions.
|
|---|
| 2124 | (line 53)
|
|---|
| 2125 | * match expression at most M times: Fundamental Structure.
|
|---|
| 2126 | (line 33)
|
|---|
| 2127 | * match expression at most once: Fundamental Structure.
|
|---|
| 2128 | (line 18)
|
|---|
| 2129 | * match expression from N to M times: Fundamental Structure.
|
|---|
| 2130 | (line 36)
|
|---|
| 2131 | * match expression N or more times: Fundamental Structure.
|
|---|
| 2132 | (line 30)
|
|---|
| 2133 | * match expression N times: Fundamental Structure.
|
|---|
| 2134 | (line 27)
|
|---|
| 2135 | * match expression one or more times: Fundamental Structure.
|
|---|
| 2136 | (line 24)
|
|---|
| 2137 | * match expression zero or more times: Fundamental Structure.
|
|---|
| 2138 | (line 21)
|
|---|
| 2139 | * match the whole line: Matching Control. (line 41)
|
|---|
| 2140 | * matching basic regular expressions: grep Programs. (line 16)
|
|---|
| 2141 | * matching extended regular expressions: grep Programs. (line 21)
|
|---|
| 2142 | * matching fixed strings: grep Programs. (line 26)
|
|---|
| 2143 | * matching Perl regular expressions: grep Programs. (line 32)
|
|---|
| 2144 | * matching whole words: Matching Control. (line 32)
|
|---|
| 2145 | * max-count: General Output Control.
|
|---|
| 2146 | (line 42)
|
|---|
| 2147 | * mc GREP_COLORS capability: Environment Variables.
|
|---|
| 2148 | (line 116)
|
|---|
| 2149 | * memory mapped input: Other Options. (line 11)
|
|---|
| 2150 | * message language: Environment Variables.
|
|---|
| 2151 | (line 175)
|
|---|
| 2152 | * ms GREP_COLORS capability: Environment Variables.
|
|---|
| 2153 | (line 108)
|
|---|
| 2154 | * MS-DOS/MS-Windows binary files: Other Options. (line 19)
|
|---|
| 2155 | * MS-DOS/MS-Windows byte offsets: Output Line Prefix Control.
|
|---|
| 2156 | (line 53)
|
|---|
| 2157 | * mt GREP_COLORS capability: Environment Variables.
|
|---|
| 2158 | (line 100)
|
|---|
| 2159 | * names of matching files: General Output Control.
|
|---|
| 2160 | (line 35)
|
|---|
| 2161 | * national language support: Environment Variables.
|
|---|
| 2162 | (line 161)
|
|---|
| 2163 | * ne GREP_COLORS capability: Environment Variables.
|
|---|
| 2164 | (line 146)
|
|---|
| 2165 | * NLS: Environment Variables.
|
|---|
| 2166 | (line 161)
|
|---|
| 2167 | * no filename prefix: Output Line Prefix Control.
|
|---|
| 2168 | (line 25)
|
|---|
| 2169 | * numeric characters: Character Classes and Bracket Expressions.
|
|---|
| 2170 | (line 47)
|
|---|
| 2171 | * only matching: General Output Control.
|
|---|
| 2172 | (line 75)
|
|---|
| 2173 | * palindromes: Usage. (line 139)
|
|---|
| 2174 | * pattern from file: Matching Control. (line 14)
|
|---|
| 2175 | * pattern list: Matching Control. (line 8)
|
|---|
| 2176 | * period: Fundamental Structure.
|
|---|
| 2177 | (line 15)
|
|---|
| 2178 | * plus sign: Fundamental Structure.
|
|---|
| 2179 | (line 24)
|
|---|
| 2180 | * POSIXLY_CORRECT environment variable: Environment Variables.
|
|---|
| 2181 | (line 180)
|
|---|
| 2182 | * print character class: Character Classes and Bracket Expressions.
|
|---|
| 2183 | (line 58)
|
|---|
| 2184 | * print non-matching lines: Matching Control. (line 27)
|
|---|
| 2185 | * printable characters: Character Classes and Bracket Expressions.
|
|---|
| 2186 | (line 58)
|
|---|
| 2187 | * punct character class: Character Classes and Bracket Expressions.
|
|---|
| 2188 | (line 61)
|
|---|
| 2189 | * punctuation characters: Character Classes and Bracket Expressions.
|
|---|
| 2190 | (line 61)
|
|---|
| 2191 | * question mark: Fundamental Structure.
|
|---|
| 2192 | (line 18)
|
|---|
| 2193 | * quiet, silent: General Output Control.
|
|---|
| 2194 | (line 81)
|
|---|
| 2195 | * range expression: Character Classes and Bracket Expressions.
|
|---|
| 2196 | (line 12)
|
|---|
| 2197 | * recursive search: File and Directory Selection.
|
|---|
| 2198 | (line 75)
|
|---|
| 2199 | * regular expressions: Regular Expressions. (line 6)
|
|---|
| 2200 | * return status: Exit Status. (line 6)
|
|---|
| 2201 | * rv GREP_COLORS capability: Environment Variables.
|
|---|
| 2202 | (line 94)
|
|---|
| 2203 | * searching directory trees: File and Directory Selection.
|
|---|
| 2204 | (line 53)
|
|---|
| 2205 | * searching for a pattern: Introduction. (line 6)
|
|---|
| 2206 | * sl GREP_COLORS capability: Environment Variables.
|
|---|
| 2207 | (line 77)
|
|---|
| 2208 | * space character class: Character Classes and Bracket Expressions.
|
|---|
| 2209 | (line 66)
|
|---|
| 2210 | * space characters: Character Classes and Bracket Expressions.
|
|---|
| 2211 | (line 66)
|
|---|
| 2212 | * subexpression: Back-references and Subexpressions.
|
|---|
| 2213 | (line 6)
|
|---|
| 2214 | * suppress binary data: File and Directory Selection.
|
|---|
| 2215 | (line 8)
|
|---|
| 2216 | * suppress error messages: General Output Control.
|
|---|
| 2217 | (line 88)
|
|---|
| 2218 | * symbolic links: File and Directory Selection.
|
|---|
| 2219 | (line 42)
|
|---|
| 2220 | * tab-aligned content lines: Output Line Prefix Control.
|
|---|
| 2221 | (line 43)
|
|---|
| 2222 | * translation of message language: Environment Variables.
|
|---|
| 2223 | (line 175)
|
|---|
| 2224 | * upper character class: Character Classes and Bracket Expressions.
|
|---|
| 2225 | (line 71)
|
|---|
| 2226 | * upper-case letters: Character Classes and Bracket Expressions.
|
|---|
| 2227 | (line 71)
|
|---|
| 2228 | * usage summary, printing: Generic Program Information.
|
|---|
| 2229 | (line 7)
|
|---|
| 2230 | * usage, examples: Usage. (line 6)
|
|---|
| 2231 | * using grep, Q&A: Usage. (line 17)
|
|---|
| 2232 | * variants of grep: grep Programs. (line 6)
|
|---|
| 2233 | * version, printing: Generic Program Information.
|
|---|
| 2234 | (line 12)
|
|---|
| 2235 | * whitespace characters: Character Classes and Bracket Expressions.
|
|---|
| 2236 | (line 66)
|
|---|
| 2237 | * with filename prefix: Output Line Prefix Control.
|
|---|
| 2238 | (line 20)
|
|---|
| 2239 | * xdigit character class: Character Classes and Bracket Expressions.
|
|---|
| 2240 | (line 76)
|
|---|
| 2241 | * xdigit class: Character Classes and Bracket Expressions.
|
|---|
| 2242 | (line 76)
|
|---|
| 2243 | * zero-terminated file names: Output Line Prefix Control.
|
|---|
| 2244 | (line 63)
|
|---|
| 2245 | * zero-terminated lines: Other Options. (line 33)
|
|---|
| 2246 | * {,M}: Fundamental Structure.
|
|---|
| 2247 | (line 33)
|
|---|
| 2248 | * {N,M}: Fundamental Structure.
|
|---|
| 2249 | (line 36)
|
|---|
| 2250 | * {N,}: Fundamental Structure.
|
|---|
| 2251 | (line 30)
|
|---|
| 2252 | * {N}: Fundamental Structure.
|
|---|
| 2253 | (line 27)
|
|---|
| 2254 |
|
|---|
| 2255 |
|
|---|
| 2256 |
|
|---|
| 2257 | Tag Table:
|
|---|
| 2258 | Node: Top764
|
|---|
| 2259 | Node: Introduction1879
|
|---|
| 2260 | Node: Invoking2607
|
|---|
| 2261 | Node: Command-line Options3352
|
|---|
| 2262 | Node: Generic Program Information4227
|
|---|
| 2263 | Node: Matching Control4686
|
|---|
| 2264 | Node: General Output Control6135
|
|---|
| 2265 | Ref: General Output Control-Footnote-110048
|
|---|
| 2266 | Node: Output Line Prefix Control10117
|
|---|
| 2267 | Node: Context Line Control13052
|
|---|
| 2268 | Node: File and Directory Selection14984
|
|---|
| 2269 | Node: Other Options18528
|
|---|
| 2270 | Node: Environment Variables20064
|
|---|
| 2271 | Node: Exit Status29560
|
|---|
| 2272 | Node: grep Programs30201
|
|---|
| 2273 | Node: Regular Expressions31619
|
|---|
| 2274 | Node: Fundamental Structure32771
|
|---|
| 2275 | Node: Character Classes and Bracket Expressions34465
|
|---|
| 2276 | Ref: invalid-bracket-expr37654
|
|---|
| 2277 | Node: The Backslash Character and Special Expressions38831
|
|---|
| 2278 | Node: Anchoring39830
|
|---|
| 2279 | Node: Back-references and Subexpressions40273
|
|---|
| 2280 | Node: Basic vs Extended40983
|
|---|
| 2281 | Node: Usage41978
|
|---|
| 2282 | Node: Reporting Bugs49235
|
|---|
| 2283 | Node: Copying49897
|
|---|
| 2284 | Node: GNU Free Documentation License50984
|
|---|
| 2285 | Node: Index76111
|
|---|
| 2286 |
|
|---|
| 2287 | End Tag Table
|
|---|