| 1 | \input texinfo @c -*-texinfo-*-
|
|---|
| 2 | @c %**start of header
|
|---|
| 3 | @setfilename grep.info
|
|---|
| 4 | @settitle grep, print lines matching a pattern
|
|---|
| 5 | @c %**end of header
|
|---|
| 6 |
|
|---|
| 7 | @c This file has the new style title page commands.
|
|---|
| 8 | @c Run `makeinfo' rather than `texinfo-format-buffer'.
|
|---|
| 9 |
|
|---|
| 10 | @c smallbook
|
|---|
| 11 |
|
|---|
| 12 | @c tex
|
|---|
| 13 | @c \overfullrule=0pt
|
|---|
| 14 | @c end tex
|
|---|
| 15 |
|
|---|
| 16 | @include version.texi
|
|---|
| 17 |
|
|---|
| 18 | @c Combine indices.
|
|---|
| 19 | @syncodeindex ky cp
|
|---|
| 20 | @syncodeindex pg cp
|
|---|
| 21 | @syncodeindex tp cp
|
|---|
| 22 |
|
|---|
| 23 | @defcodeindex op
|
|---|
| 24 | @syncodeindex op fn
|
|---|
| 25 | @syncodeindex vr fn
|
|---|
| 26 |
|
|---|
| 27 | @ifinfo
|
|---|
| 28 | @direntry
|
|---|
| 29 | * grep: (grep). print lines matching a pattern.
|
|---|
| 30 | @end direntry
|
|---|
| 31 | This file documents @command{grep}, a pattern matching engine.
|
|---|
| 32 |
|
|---|
| 33 |
|
|---|
| 34 | Published by the Free Software Foundation,
|
|---|
| 35 | 59 Temple Place - Suite 330
|
|---|
| 36 | Boston, MA 02111-1307, USA
|
|---|
| 37 |
|
|---|
| 38 | @c man begin COPYRIGHT
|
|---|
| 39 | Copyright @copyright{} 2000, 2001 Free Software Foundation, Inc.
|
|---|
| 40 |
|
|---|
| 41 | Permission is granted to make and distribute verbatim copies of
|
|---|
| 42 | this manual provided the copyright notice and this permission notice
|
|---|
| 43 | are preserved on all copies.
|
|---|
| 44 |
|
|---|
| 45 | @ignore
|
|---|
| 46 | Permission is granted to process this file through TeX and print the
|
|---|
| 47 | results, provided the printed document carries a copying permission
|
|---|
| 48 | notice identical to this one except for the removal of this paragraph
|
|---|
| 49 | (this paragraph not being relevant to the printed manual).
|
|---|
| 50 |
|
|---|
| 51 | @end ignore
|
|---|
| 52 | Permission is granted to copy, distribute and/or modify this document
|
|---|
| 53 | under the terms of the GNU Free Documentation License, Version 1.1 or
|
|---|
| 54 | any later version published by the Free Software Foundation; with the
|
|---|
| 55 | Invariant Sections being ``GNU General Public License'' and ``GNU Free
|
|---|
| 56 | Documentation License'', with no Front-Cover Texts, and with no
|
|---|
| 57 | Back-Cover Texts. A copy of the license is included in the section
|
|---|
| 58 | entitled ``GNU Free Documentation License'' (@pxref{Copying}).
|
|---|
| 59 | @c man end
|
|---|
| 60 | @end ifinfo
|
|---|
| 61 |
|
|---|
| 62 | @setchapternewpage off
|
|---|
| 63 |
|
|---|
| 64 | @titlepage
|
|---|
| 65 | @title grep, searching for a pattern
|
|---|
| 66 | @subtitle version @value{VERSION}, @value{UPDATED}
|
|---|
| 67 | @author Alain Magloire et al.
|
|---|
| 68 |
|
|---|
| 69 | @page
|
|---|
| 70 | @vskip 0pt plus 1filll
|
|---|
| 71 | Copyright @copyright{} 2000, 2001 Free Software Foundation, Inc.
|
|---|
| 72 |
|
|---|
| 73 | @sp 2
|
|---|
| 74 | Published by the Free Software Foundation, @*
|
|---|
| 75 | 59 Temple Place - Suite 330, @*
|
|---|
| 76 | Boston, MA 02111-1307, USA
|
|---|
| 77 |
|
|---|
| 78 | Permission is granted to copy, distribute and/or modify this document
|
|---|
| 79 | under the terms of the GNU Free Documentation License, Version 1.1 or
|
|---|
| 80 | any later version published by the Free Software Foundation; with the
|
|---|
| 81 | Invariant Sections being ``GNU General Public License'' and ``GNU Free
|
|---|
| 82 | Documentation License'', with no Front-Cover Texts, and with no
|
|---|
| 83 | Back-Cover Texts. A copy of the license is included in the section
|
|---|
| 84 | entitled ``GNU Free Documentation License''.
|
|---|
| 85 | @end titlepage
|
|---|
| 86 |
|
|---|
| 87 |
|
|---|
| 88 | @ifnottex
|
|---|
| 89 | @node Top
|
|---|
| 90 | @top Grep
|
|---|
| 91 |
|
|---|
| 92 | @command{grep} searches for lines matching a pattern.
|
|---|
| 93 |
|
|---|
| 94 | This document was produced for version @value{VERSION} of @sc{gnu}
|
|---|
| 95 | @command{grep}.
|
|---|
| 96 | @end ifnottex
|
|---|
| 97 |
|
|---|
| 98 | @menu
|
|---|
| 99 | * Introduction:: Introduction.
|
|---|
| 100 | * Invoking:: Invoking @command{grep}; description of options.
|
|---|
| 101 | * Diagnostics:: Exit status returned by @command{grep}.
|
|---|
| 102 | * Grep Programs:: @command{grep} programs.
|
|---|
| 103 | * Regular Expressions:: Regular Expressions.
|
|---|
| 104 | * Usage:: Examples.
|
|---|
| 105 | * Reporting Bugs:: Reporting Bugs.
|
|---|
| 106 | * Copying:: License terms.
|
|---|
| 107 | * Concept Index:: A menu with all the topics in this manual.
|
|---|
| 108 | * Index:: A menu with all @command{grep} commands
|
|---|
| 109 | and command-line options.
|
|---|
| 110 | @end menu
|
|---|
| 111 |
|
|---|
| 112 |
|
|---|
| 113 | @node Introduction, Invoking, Top, Top
|
|---|
| 114 | @chapter Introduction
|
|---|
| 115 |
|
|---|
| 116 | @cindex Searching for a pattern.
|
|---|
| 117 |
|
|---|
| 118 | @command{grep} searches the input files
|
|---|
| 119 | for lines containing a match to a given
|
|---|
| 120 | pattern list. When it finds a match in a line, it copies the line to standard
|
|---|
| 121 | output (by default), or does whatever other sort of output you have requested
|
|---|
| 122 | with options.
|
|---|
| 123 |
|
|---|
| 124 | Though @command{grep} expects to do the matching on text,
|
|---|
| 125 | it has no limits on input line length other than available memory,
|
|---|
| 126 | and it can match arbitrary characters within a line.
|
|---|
| 127 | If the final byte of an input file is not a newline,
|
|---|
| 128 | @command{grep} silently supplies one.
|
|---|
| 129 | Since newline is also a separator for the list of patterns, there
|
|---|
| 130 | is no way to match newline characters in a text.
|
|---|
| 131 |
|
|---|
| 132 | @node Invoking
|
|---|
| 133 | @chapter Invoking @command{grep}
|
|---|
| 134 |
|
|---|
| 135 | @command{grep} comes with a rich set of options from @sc{posix.2} and @sc{gnu}
|
|---|
| 136 | extensions.
|
|---|
| 137 |
|
|---|
| 138 | @table @samp
|
|---|
| 139 |
|
|---|
| 140 | @item -c
|
|---|
| 141 | @itemx --count
|
|---|
| 142 | @opindex -c
|
|---|
| 143 | @opindex --count
|
|---|
| 144 | @cindex counting lines
|
|---|
| 145 | Suppress normal output; instead print a count of matching
|
|---|
| 146 | lines for each input file. With the @samp{-v}, @samp{--invert-match} option,
|
|---|
| 147 | count non-matching lines.
|
|---|
| 148 |
|
|---|
| 149 | @item -e @var{pattern}
|
|---|
| 150 | @itemx --regexp=@var{pattern}
|
|---|
| 151 | @opindex -e
|
|---|
| 152 | @opindex --regexp=@var{pattern}
|
|---|
| 153 | @cindex pattern list
|
|---|
| 154 | Use @var{pattern} as the pattern; useful to protect patterns
|
|---|
| 155 | beginning with a @samp{-}.
|
|---|
| 156 |
|
|---|
| 157 | @item -f @var{file}
|
|---|
| 158 | @itemx --file=@var{file}
|
|---|
| 159 | @opindex -f
|
|---|
| 160 | @opindex --file
|
|---|
| 161 | @cindex pattern from file
|
|---|
| 162 | Obtain patterns from @var{file}, one per line. The empty
|
|---|
| 163 | file contains zero patterns, and therefore matches nothing.
|
|---|
| 164 |
|
|---|
| 165 | @item -i
|
|---|
| 166 | @itemx --ignore-case
|
|---|
| 167 | @opindex -i
|
|---|
| 168 | @opindex --ignore-case
|
|---|
| 169 | @cindex case insensitive search
|
|---|
| 170 | Ignore case distinctions in both the pattern and the input files.
|
|---|
| 171 |
|
|---|
| 172 | @item -l
|
|---|
| 173 | @itemx --files-with-matches
|
|---|
| 174 | @opindex -l
|
|---|
| 175 | @opindex --files-with-matches
|
|---|
| 176 | @cindex names of matching files
|
|---|
| 177 | Suppress normal output; instead print the name of each input
|
|---|
| 178 | file from which output would normally have been printed.
|
|---|
| 179 | The scanning of every file will stop on the first match.
|
|---|
| 180 |
|
|---|
| 181 | @item -n
|
|---|
| 182 | @itemx --line-number
|
|---|
| 183 | @opindex -n
|
|---|
| 184 | @opindex --line-number
|
|---|
| 185 | @cindex line numbering
|
|---|
| 186 | Prefix each line of output with the line number within its input file.
|
|---|
| 187 |
|
|---|
| 188 | @item -o
|
|---|
| 189 | @itemx --only-matching
|
|---|
| 190 | @opindex -o
|
|---|
| 191 | @opindex --only-matching
|
|---|
| 192 | @cindex only matching
|
|---|
| 193 | Print only the part of matching lines that actually matches @var{pattern}.
|
|---|
| 194 |
|
|---|
| 195 | @item -q
|
|---|
| 196 | @itemx --quiet
|
|---|
| 197 | @itemx --silent
|
|---|
| 198 | @opindex -q
|
|---|
| 199 | @opindex --quiet
|
|---|
| 200 | @opindex --silent
|
|---|
| 201 | @cindex quiet, silent
|
|---|
| 202 | Quiet; do not write anything to standard output. Exit immediately with
|
|---|
| 203 | zero status if any match is found, even if an error was detected. Also
|
|---|
| 204 | see the @samp{-s} or @samp{--no-messages} option.
|
|---|
| 205 |
|
|---|
| 206 | @item -s
|
|---|
| 207 | @itemx --no-messages
|
|---|
| 208 | @opindex -s
|
|---|
| 209 | @opindex --no-messages
|
|---|
| 210 | @cindex suppress error messages
|
|---|
| 211 | Suppress error messages about nonexistent or unreadable files.
|
|---|
| 212 | Portability note: unlike @sc{gnu} @command{grep}, traditional
|
|---|
| 213 | @command{grep} did not conform to @sc{posix.2}, because traditional
|
|---|
| 214 | @command{grep} lacked a @samp{-q} option and its @samp{-s} option behaved
|
|---|
| 215 | like @sc{gnu} @command{grep}'s @samp{-q} option. Shell scripts intended
|
|---|
| 216 | to be portable to traditional @command{grep} should avoid both
|
|---|
| 217 | @samp{-q} and @samp{-s} and should redirect
|
|---|
| 218 | output to @file{/dev/null} instead.
|
|---|
| 219 |
|
|---|
| 220 | @item -v
|
|---|
| 221 | @itemx --invert-match
|
|---|
| 222 | @opindex -v
|
|---|
| 223 | @opindex --invert-match
|
|---|
| 224 | @cindex invert matching
|
|---|
| 225 | @cindex print non-matching lines
|
|---|
| 226 | Invert the sense of matching, to select non-matching lines.
|
|---|
| 227 |
|
|---|
| 228 | @item -x
|
|---|
| 229 | @itemx --line-regexp
|
|---|
| 230 | @opindex -x
|
|---|
| 231 | @opindex --line-regexp
|
|---|
| 232 | @cindex match the whole line
|
|---|
| 233 | Select only those matches that exactly match the whole line.
|
|---|
| 234 |
|
|---|
| 235 | @end table
|
|---|
| 236 |
|
|---|
| 237 | @section @sc{gnu} Extensions
|
|---|
| 238 |
|
|---|
| 239 | @table @samp
|
|---|
| 240 |
|
|---|
| 241 | @item -A @var{num}
|
|---|
| 242 | @itemx --after-context=@var{num}
|
|---|
| 243 | @opindex -A
|
|---|
| 244 | @opindex --after-context
|
|---|
| 245 | @cindex after context
|
|---|
| 246 | @cindex context lines, after match
|
|---|
| 247 | Print @var{num} lines of trailing context after matching lines.
|
|---|
| 248 |
|
|---|
| 249 | @item -B @var{num}
|
|---|
| 250 | @itemx --before-context=@var{num}
|
|---|
| 251 | @opindex -B
|
|---|
| 252 | @opindex --before-context
|
|---|
| 253 | @cindex before context
|
|---|
| 254 | @cindex context lines, before match
|
|---|
| 255 | Print @var{num} lines of leading context before matching lines.
|
|---|
| 256 |
|
|---|
| 257 | @item -C @var{num}
|
|---|
| 258 | @itemx --context=@var{num}
|
|---|
| 259 | @opindex -C
|
|---|
| 260 | @opindex --context
|
|---|
| 261 | @cindex context
|
|---|
| 262 | Print @var{num} lines of output context.
|
|---|
| 263 |
|
|---|
| 264 | @item --colour[=@var{WHEN}]
|
|---|
| 265 | @itemx --color[=@var{WHEN}]
|
|---|
| 266 | @opindex --colour
|
|---|
| 267 | @cindex highlight, color, colour
|
|---|
| 268 | The matching string is surrounded by the marker specify in @var{GREP_COLOR}.
|
|---|
| 269 | @var{WHEN} may be `never', `always', or `auto'.
|
|---|
| 270 |
|
|---|
| 271 | @item -@var{num}
|
|---|
| 272 | @opindex -NUM
|
|---|
| 273 | Same as @samp{--context=@var{num}} lines of leading and trailing
|
|---|
| 274 | context. However, grep will never print any given line more than once.
|
|---|
| 275 |
|
|---|
| 276 |
|
|---|
| 277 | @item -V
|
|---|
| 278 | @itemx --version
|
|---|
| 279 | @opindex -V
|
|---|
| 280 | @opindex --version
|
|---|
| 281 | @cindex Version, printing
|
|---|
| 282 | Print the version number of @command{grep} to the standard output stream.
|
|---|
| 283 | This version number should be included in all bug reports.
|
|---|
| 284 |
|
|---|
| 285 | @item --help
|
|---|
| 286 | @opindex --help
|
|---|
| 287 | @cindex Usage summary, printing
|
|---|
| 288 | Print a usage message briefly summarizing these command-line options
|
|---|
| 289 | and the bug-reporting address, then exit.
|
|---|
| 290 |
|
|---|
| 291 | @itemx --binary-files=@var{type}
|
|---|
| 292 | @opindex --binary-files
|
|---|
| 293 | @cindex binary files
|
|---|
| 294 | If the first few bytes of a file indicate that the file contains binary
|
|---|
| 295 | data, assume that the file is of type @var{type}. By default,
|
|---|
| 296 | @var{type} is @samp{binary}, and @command{grep} normally outputs either
|
|---|
| 297 | a one-line message saying that a binary file matches, or no message if
|
|---|
| 298 | there is no match. If @var{type} is @samp{without-match},
|
|---|
| 299 | @command{grep} assumes that a binary file does not match;
|
|---|
| 300 | this is equivalent to the @samp{-I} option. If @var{type}
|
|---|
| 301 | is @samp{text}, @command{grep} processes a binary file as if it were
|
|---|
| 302 | text; this is equivalent to the @samp{-a} option.
|
|---|
| 303 | @emph{Warning:} @samp{--binary-files=text} might output binary garbage,
|
|---|
| 304 | which can have nasty side effects if the output is a terminal and if the
|
|---|
| 305 | terminal driver interprets some of it as commands.
|
|---|
| 306 |
|
|---|
| 307 | @item -b
|
|---|
| 308 | @itemx --byte-offset
|
|---|
| 309 | @opindex -b
|
|---|
| 310 | @opindex --byte-offset
|
|---|
| 311 | @cindex byte offset
|
|---|
| 312 | Print the byte offset within the input file before each line of output.
|
|---|
| 313 | When @command{grep} runs on @sc{ms-dos} or MS-Windows, the printed
|
|---|
| 314 | byte offsets
|
|---|
| 315 | depend on whether the @samp{-u} (@samp{--unix-byte-offsets}) option is
|
|---|
| 316 | used; see below.
|
|---|
| 317 |
|
|---|
| 318 | @item -D @var{action}
|
|---|
| 319 | @itemx --devices=@var{action}
|
|---|
| 320 | @opindex -D
|
|---|
| 321 | @opindex --devices
|
|---|
| 322 | @cindex device search
|
|---|
| 323 | If an input file is a device, FIFO or socket, use @var{action} to process it.
|
|---|
| 324 | By default, @var{action} is @samp{read}, which means that devices are
|
|---|
| 325 | read just as if they were ordinary files.
|
|---|
| 326 | If @var{action} is @samp{skip}, devices, FIFOs and sockets are silently
|
|---|
| 327 | skipped.
|
|---|
| 328 |
|
|---|
| 329 | @item -d @var{action}
|
|---|
| 330 | @itemx --directories=@var{action}
|
|---|
| 331 | @opindex -d
|
|---|
| 332 | @opindex --directories
|
|---|
| 333 | @cindex directory search
|
|---|
| 334 | If an input file is a directory, use @var{action} to process it.
|
|---|
| 335 | By default, @var{action} is @samp{read}, which means that directories are
|
|---|
| 336 | read just as if they were ordinary files (some operating systems
|
|---|
| 337 | and filesystems disallow this, and will cause @command{grep} to print error
|
|---|
| 338 | messages for every directory or silently skip them). If @var{action} is
|
|---|
| 339 | @samp{skip}, directories are silently skipped. If @var{action} is
|
|---|
| 340 | @samp{recurse}, @command{grep} reads all files under each directory,
|
|---|
| 341 | recursively; this is equivalent to the @samp{-r} option.
|
|---|
| 342 |
|
|---|
| 343 | @item -H
|
|---|
| 344 | @itemx --with-filename
|
|---|
| 345 | @opindex -H
|
|---|
| 346 | @opindex --With-filename
|
|---|
| 347 | @cindex with filename prefix
|
|---|
| 348 | Print the filename for each match.
|
|---|
| 349 |
|
|---|
| 350 | @item -h
|
|---|
| 351 | @itemx --no-filename
|
|---|
| 352 | @opindex -h
|
|---|
| 353 | @opindex --no-filename
|
|---|
| 354 | @cindex no filename prefix
|
|---|
| 355 | Suppress the prefixing of filenames on output when multiple files are searched.
|
|---|
| 356 |
|
|---|
| 357 | @item --line-buffered
|
|---|
| 358 | @opindex --line-buffered
|
|---|
| 359 | @cindex line buffering
|
|---|
| 360 | Set the line buffering policy, this can be a performance penality.
|
|---|
| 361 |
|
|---|
| 362 | @item --label=@var{LABEL}
|
|---|
| 363 | @opindex --label
|
|---|
| 364 | @cindex changing name of standard input
|
|---|
| 365 | Displays input actually coming from standard input as input coming from file
|
|---|
| 366 | @var{LABEL}. This is especially useful for tools like zgrep, e.g.
|
|---|
| 367 | @command{gzip -cd foo.gz |grep --label=foo something}
|
|---|
| 368 |
|
|---|
| 369 | @item -L
|
|---|
| 370 | @itemx --files-without-match
|
|---|
| 371 | @opindex -L
|
|---|
| 372 | @opindex --files-without-match
|
|---|
| 373 | @cindex files which don't match
|
|---|
| 374 | Suppress normal output; instead print the name of each input
|
|---|
| 375 | file from which no output would normally have been printed.
|
|---|
| 376 | The scanning of every file will stop on the first match.
|
|---|
| 377 |
|
|---|
| 378 | @item -a
|
|---|
| 379 | @itemx --text
|
|---|
| 380 | @opindex -a
|
|---|
| 381 | @opindex --text
|
|---|
| 382 | @cindex suppress binary data
|
|---|
| 383 | @cindex binary files
|
|---|
| 384 | Process a binary file as if it were text; this is equivalent to the
|
|---|
| 385 | @samp{--binary-files=text} option.
|
|---|
| 386 |
|
|---|
| 387 | @item -I
|
|---|
| 388 | Process a binary file as if it did not contain matching data; this is
|
|---|
| 389 | equivalent to the @samp{--binary-files=without-match} option.
|
|---|
| 390 |
|
|---|
| 391 | @item -w
|
|---|
| 392 | @itemx --word-regexp
|
|---|
| 393 | @opindex -w
|
|---|
| 394 | @opindex --word-regexp
|
|---|
| 395 | @cindex matching whole words
|
|---|
| 396 | Select only those lines containing matches that form
|
|---|
| 397 | whole words. The test is that the matching substring
|
|---|
| 398 | must either be at the beginning of the line, or preceded
|
|---|
| 399 | by a non-word constituent character. Similarly,
|
|---|
| 400 | it must be either at the end of the line or followed by
|
|---|
| 401 | a non-word constituent character. Word-constituent
|
|---|
| 402 | characters are letters, digits, and the underscore.
|
|---|
| 403 |
|
|---|
| 404 | @item -r
|
|---|
| 405 | @itemx -R
|
|---|
| 406 | @itemx --recursive
|
|---|
| 407 | @opindex -r
|
|---|
| 408 | @opindex --recursive
|
|---|
| 409 | @cindex recursive search
|
|---|
| 410 | @cindex searching directory trees
|
|---|
| 411 | For each directory mentioned in the command line, read and process all
|
|---|
| 412 | files in that directory, recursively. This is the same as the
|
|---|
| 413 | @samp{--directories=recurse} option.
|
|---|
| 414 |
|
|---|
| 415 | @item --include=@var{file_pattern}
|
|---|
| 416 | @opindex --include
|
|---|
| 417 | @cindex include files
|
|---|
| 418 | @cindex searching directory trees
|
|---|
| 419 | When processing directories recursively, only files matching @var{file_pattern}
|
|---|
| 420 | will be search.
|
|---|
| 421 |
|
|---|
| 422 | @item --exclude=@var{file_pattern}
|
|---|
| 423 | @opindex --exclude
|
|---|
| 424 | @cindex exclude files
|
|---|
| 425 | @cindex searching directory trees
|
|---|
| 426 | When processing directories recursively, skip files matching @var{file_pattern}.
|
|---|
| 427 |
|
|---|
| 428 | @item -m @var{num}
|
|---|
| 429 | @itemx --max-count=@var{num}
|
|---|
| 430 | @opindex -m
|
|---|
| 431 | @opindex --max-count
|
|---|
| 432 | @cindex max-count
|
|---|
| 433 | Stop reading a file after @var{num} matching lines. If the input is
|
|---|
| 434 | standard input from a regular file, and @var{num} matching lines are
|
|---|
| 435 | output, @command{grep} ensures that the standard input is positioned to
|
|---|
| 436 | just after the last matching line before exiting, regardless of the
|
|---|
| 437 | presence of trailing context lines. This enables a calling process
|
|---|
| 438 | to resume a search. For example, the following shell script makes use
|
|---|
| 439 | of it:
|
|---|
| 440 |
|
|---|
| 441 | @example
|
|---|
| 442 | while grep -m 1 PATTERN
|
|---|
| 443 | do
|
|---|
| 444 | echo xxxx
|
|---|
| 445 | done < FILE
|
|---|
| 446 | @end example
|
|---|
| 447 |
|
|---|
| 448 | But the following probably will not work because a pipe is not a regular
|
|---|
| 449 | file:
|
|---|
| 450 |
|
|---|
| 451 | @example
|
|---|
| 452 | # This probably will not work.
|
|---|
| 453 | cat FILE |
|
|---|
| 454 | while grep -m 1 PATTERN
|
|---|
| 455 | do
|
|---|
| 456 | echo xxxx
|
|---|
| 457 | done
|
|---|
| 458 | @end example
|
|---|
| 459 |
|
|---|
| 460 | When @command{grep} stops after NUM matching lines, it outputs
|
|---|
| 461 | any trailing context lines. Since context does not include matching
|
|---|
| 462 | lines, @command{grep} will stop when it encounters another matching line.
|
|---|
| 463 | When the @samp{-c} or @samp{--count} option is also used,
|
|---|
| 464 | @command{grep} does not output a count greater than @var{num}.
|
|---|
| 465 | When the @samp{-v} or @samp{--invert-match} option is
|
|---|
| 466 | also used, @command{grep} stops after outputting @var{num}
|
|---|
| 467 | non-matching lines.
|
|---|
| 468 |
|
|---|
| 469 | @item -y
|
|---|
| 470 | @opindex -y
|
|---|
| 471 | @cindex case insensitive search, obsolete option
|
|---|
| 472 | Obsolete synonym for @samp{-i}.
|
|---|
| 473 |
|
|---|
| 474 | @item -U
|
|---|
| 475 | @itemx --binary
|
|---|
| 476 | @opindex -U
|
|---|
| 477 | @opindex --binary
|
|---|
| 478 | @cindex DOS/Windows binary files
|
|---|
| 479 | @cindex binary files, DOS/Windows
|
|---|
| 480 | Treat the file(s) as binary. By default, under @sc{ms-dos}
|
|---|
| 481 | and MS-Windows, @command{grep} guesses the file type by looking
|
|---|
| 482 | at the contents of the first 32kB read from the file.
|
|---|
| 483 | If @command{grep} decides the file is a text file, it strips the
|
|---|
| 484 | @code{CR} characters from the original file contents (to make
|
|---|
| 485 | regular expressions with @code{^} and @code{$} work correctly).
|
|---|
| 486 | Specifying @samp{-U} overrules this guesswork, causing all
|
|---|
| 487 | files to be read and passed to the matching mechanism
|
|---|
| 488 | verbatim; if the file is a text file with @code{CR/LF} pairs
|
|---|
| 489 | at the end of each line, this will cause some regular
|
|---|
| 490 | expressions to fail. This option has no effect on platforms other than
|
|---|
| 491 | @sc{ms-dos} and MS-Windows.
|
|---|
| 492 |
|
|---|
| 493 | @item -u
|
|---|
| 494 | @itemx --unix-byte-offsets
|
|---|
| 495 | @opindex -u
|
|---|
| 496 | @opindex --unix-byte-offsets
|
|---|
| 497 | @cindex DOS byte offsets
|
|---|
| 498 | @cindex byte offsets, on DOS/Windows
|
|---|
| 499 | Report Unix-style byte offsets. This switch causes
|
|---|
| 500 | @command{grep} to report byte offsets as if the file were Unix style
|
|---|
| 501 | text file, i.e., the byte offsets ignore the @code{CR} characters which were
|
|---|
| 502 | stripped. This will produce results identical to running @command{grep} on
|
|---|
| 503 | a Unix machine. This option has no effect unless @samp{-b}
|
|---|
| 504 | option is also used; it has no effect on platforms other than @sc{ms-dos} and
|
|---|
| 505 | MS-Windows.
|
|---|
| 506 |
|
|---|
| 507 | @item --mmap
|
|---|
| 508 | @opindex --mmap
|
|---|
| 509 | @cindex memory mapped input
|
|---|
| 510 | If possible, use the @code{mmap} system call to read input, instead of
|
|---|
| 511 | the default @code{read} system call. In some situations, @samp{--mmap}
|
|---|
| 512 | yields better performance. However, @samp{--mmap} can cause undefined
|
|---|
| 513 | behavior (including core dumps) if an input file shrinks while
|
|---|
| 514 | @command{grep} is operating, or if an I/O error occurs.
|
|---|
| 515 |
|
|---|
| 516 | @item -Z
|
|---|
| 517 | @itemx --null
|
|---|
| 518 | @opindex -Z
|
|---|
| 519 | @opindex --null
|
|---|
| 520 | @cindex zero-terminated file names
|
|---|
| 521 | Output a zero byte (the @sc{ascii} @code{NUL} character) instead of the
|
|---|
| 522 | character that normally follows a file name. For example, @samp{grep
|
|---|
| 523 | -lZ} outputs a zero byte after each file name instead of the usual
|
|---|
| 524 | newline. This option makes the output unambiguous, even in the presence
|
|---|
| 525 | of file names containing unusual characters like newlines. This option
|
|---|
| 526 | can be used with commands like @samp{find -print0}, @samp{perl -0},
|
|---|
| 527 | @samp{sort -z}, and @samp{xargs -0} to process arbitrary file names,
|
|---|
| 528 | even those that contain newline characters.
|
|---|
| 529 |
|
|---|
| 530 | @item -z
|
|---|
| 531 | @itemx --null-data
|
|---|
| 532 | @opindex -z
|
|---|
| 533 | @opindex --null-data
|
|---|
| 534 | @cindex zero-terminated lines
|
|---|
| 535 | Treat the input as a set of lines, each terminated by a zero byte (the
|
|---|
| 536 | @sc{ascii} @code{NUL} character) instead of a newline. Like the @samp{-Z}
|
|---|
| 537 | or @samp{--null} option, this option can be used with commands like
|
|---|
| 538 | @samp{sort -z} to process arbitrary file names.
|
|---|
| 539 |
|
|---|
| 540 | @end table
|
|---|
| 541 |
|
|---|
| 542 | Several additional options control which variant of the @command{grep}
|
|---|
| 543 | matching engine is used. @xref{Grep Programs}.
|
|---|
| 544 |
|
|---|
| 545 | @section Environment Variables
|
|---|
| 546 |
|
|---|
| 547 | Grep's behavior is affected by the following environment variables.
|
|---|
| 548 |
|
|---|
| 549 | A locale @code{LC_@var{foo}} is specified by examining the three
|
|---|
| 550 | environment variables @env{LC_ALL}, @env{LC_@var{foo}}, and @env{LANG},
|
|---|
| 551 | in that order. The first of these variables that is set specifies the
|
|---|
| 552 | locale. For example, if @env{LC_ALL} is not set, but @env{LC_MESSAGES}
|
|---|
| 553 | is set to @samp{pt_BR}, then Brazilian Portuguese is used for the
|
|---|
| 554 | @code{LC_MESSAGES} locale. The C locale is used if none of these
|
|---|
| 555 | environment variables are set, or if the locale catalog is not
|
|---|
| 556 | installed, or if @command{grep} was not compiled with national language
|
|---|
| 557 | support (@sc{nls}).
|
|---|
| 558 |
|
|---|
| 559 | @cindex environment variables
|
|---|
| 560 |
|
|---|
| 561 | @table @env
|
|---|
| 562 |
|
|---|
| 563 | @item GREP_OPTIONS
|
|---|
| 564 | @vindex GREP_OPTIONS
|
|---|
| 565 | @cindex default options environment variable
|
|---|
| 566 | This variable specifies default options to be placed in front of any
|
|---|
| 567 | explicit options. For example, if @code{GREP_OPTIONS} is
|
|---|
| 568 | @samp{--binary-files=without-match --directories=skip}, @command{grep}
|
|---|
| 569 | behaves as if the two options @samp{--binary-files=without-match} and
|
|---|
| 570 | @samp{--directories=skip} had been specified before
|
|---|
| 571 | any explicit options. Option specifications are separated by
|
|---|
| 572 | whitespace. A backslash escapes the next character, so it can be used to
|
|---|
| 573 | specify an option containing whitespace or a backslash.
|
|---|
| 574 |
|
|---|
| 575 | @item GREP_COLOR
|
|---|
| 576 | @vindex GREP_COLOR
|
|---|
| 577 | @cindex highlight markers
|
|---|
| 578 | This variable specifies the surrounding markers use to highlight the matching
|
|---|
| 579 | text. The default is control ascii red.
|
|---|
| 580 |
|
|---|
| 581 | @item LC_ALL
|
|---|
| 582 | @itemx LC_COLLATE
|
|---|
| 583 | @itemx LANG
|
|---|
| 584 | @vindex LC_ALL
|
|---|
| 585 | @vindex LC_COLLATE
|
|---|
| 586 | @vindex LANG
|
|---|
| 587 | @cindex character type
|
|---|
| 588 | @cindex national language support
|
|---|
| 589 | @cindex NLS
|
|---|
| 590 | These variables specify the @code{LC_COLLATE} locale, which determines
|
|---|
| 591 | the collating sequence used to interpret range expressions like
|
|---|
| 592 | @samp{[a-z]}.
|
|---|
| 593 |
|
|---|
| 594 | @item LC_ALL
|
|---|
| 595 | @itemx LC_CTYPE
|
|---|
| 596 | @itemx LANG
|
|---|
| 597 | @vindex LC_ALL
|
|---|
| 598 | @vindex LC_CTYPE
|
|---|
| 599 | @vindex LANG
|
|---|
| 600 | @cindex character type
|
|---|
| 601 | @cindex national language support
|
|---|
| 602 | @cindex NLS
|
|---|
| 603 | These variables specify the @code{LC_CTYPE} locale, which determines the
|
|---|
| 604 | type of characters, e.g., which characters are whitespace.
|
|---|
| 605 |
|
|---|
| 606 | @item LC_ALL
|
|---|
| 607 | @itemx LC_MESSAGES
|
|---|
| 608 | @itemx LANG
|
|---|
| 609 | @vindex LC_ALL
|
|---|
| 610 | @vindex LC_MESSAGES
|
|---|
| 611 | @vindex LANG
|
|---|
| 612 | @cindex language of messages
|
|---|
| 613 | @cindex message language
|
|---|
| 614 | @cindex national language support
|
|---|
| 615 | @cindex NLS
|
|---|
| 616 | @cindex translation of message language
|
|---|
| 617 | These variables specify the @code{LC_MESSAGES} locale, which determines
|
|---|
| 618 | the language that @command{grep} uses for messages. The default C
|
|---|
| 619 | locale uses American English messages.
|
|---|
| 620 |
|
|---|
| 621 | @item POSIXLY_CORRECT
|
|---|
| 622 | @vindex POSIXLY_CORRECT
|
|---|
| 623 | If set, @command{grep} behaves as @sc{posix.2} requires; otherwise,
|
|---|
| 624 | @command{grep} behaves more like other @sc{gnu} programs. @sc{posix.2}
|
|---|
| 625 | requires that options that
|
|---|
| 626 | follow file names must be treated as file names; by default, such
|
|---|
| 627 | options are permuted to the front of the operand list and are treated as
|
|---|
| 628 | options. Also, @sc{posix.2} requires that unrecognized options be
|
|---|
| 629 | diagnosed as
|
|---|
| 630 | ``illegal'', but since they are not really against the law the default
|
|---|
| 631 | is to diagnose them as ``invalid''. @code{POSIXLY_CORRECT} also
|
|---|
| 632 | disables @code{_@var{N}_GNU_nonoption_argv_flags_}, described below.
|
|---|
| 633 |
|
|---|
| 634 | @item _@var{N}_GNU_nonoption_argv_flags_
|
|---|
| 635 | @vindex _@var{N}_GNU_nonoption_argv_flags_
|
|---|
| 636 | (Here @code{@var{N}} is @command{grep}'s numeric process ID.) If the
|
|---|
| 637 | @var{i}th character of this environment variable's value is @samp{1}, do
|
|---|
| 638 | not consider the @var{i}th operand of @command{grep} to be an option, even if
|
|---|
| 639 | it appears to be one. A shell can put this variable in the environment
|
|---|
| 640 | for each command it runs, specifying which operands are the results of
|
|---|
| 641 | file name wildcard expansion and therefore should not be treated as
|
|---|
| 642 | options. This behavior is available only with the @sc{gnu} C library, and
|
|---|
| 643 | only when @code{POSIXLY_CORRECT} is not set.
|
|---|
| 644 |
|
|---|
| 645 | @end table
|
|---|
| 646 |
|
|---|
| 647 | @node Diagnostics
|
|---|
| 648 | @chapter Diagnostics
|
|---|
| 649 |
|
|---|
| 650 | Normally, exit status is 0 if selected lines are found and 1 otherwise.
|
|---|
| 651 | But the exit status is 2 if an error occurred, unless the @option{-q} or
|
|---|
| 652 | @option{--quiet} or @option{--silent} option is used and a selected line
|
|---|
| 653 | is found.
|
|---|
| 654 |
|
|---|
| 655 | @node Grep Programs
|
|---|
| 656 | @chapter @command{grep} programs
|
|---|
| 657 |
|
|---|
| 658 | @command{grep} searches the named input files (or standard input if no
|
|---|
| 659 | files are named, or the file name @file{-} is given) for lines containing
|
|---|
| 660 | a match to the given pattern. By default, @command{grep} prints the
|
|---|
| 661 | matching lines. There are four major variants of @command{grep},
|
|---|
| 662 | controlled by the following options.
|
|---|
| 663 |
|
|---|
| 664 | @table @samp
|
|---|
| 665 |
|
|---|
| 666 | @item -G
|
|---|
| 667 | @itemx --basic-regexp
|
|---|
| 668 | @opindex -G
|
|---|
| 669 | @opindex --basic-regexp
|
|---|
| 670 | @cindex matching basic regular expressions
|
|---|
| 671 | Interpret the pattern as a basic regular expression. This is the default.
|
|---|
| 672 |
|
|---|
| 673 | @item -E
|
|---|
| 674 | @itemx --extended-regexp
|
|---|
| 675 | @opindex -E
|
|---|
| 676 | @opindex --extended-regexp
|
|---|
| 677 | @cindex matching extended regular expressions
|
|---|
| 678 | Interpret the pattern as an extended regular expression.
|
|---|
| 679 |
|
|---|
| 680 | @item -F
|
|---|
| 681 | @itemx --fixed-strings
|
|---|
| 682 | @opindex -F
|
|---|
| 683 | @opindex --fixed-strings
|
|---|
| 684 | @cindex matching fixed strings
|
|---|
| 685 | Interpret the pattern as a list of fixed strings, separated
|
|---|
| 686 | by newlines, any of which is to be matched.
|
|---|
| 687 |
|
|---|
| 688 | @item -P
|
|---|
| 689 | @itemx --perl-regexp
|
|---|
| 690 | @opindex -P
|
|---|
| 691 | @opindex --perl-regexp
|
|---|
| 692 | @cindex matching Perl regular expressions
|
|---|
| 693 | Interpret the pattern as a Perl regular expression.
|
|---|
| 694 |
|
|---|
| 695 | @end table
|
|---|
| 696 |
|
|---|
| 697 | In addition, two variant programs @sc{egrep} and @sc{fgrep} are available.
|
|---|
| 698 | @sc{egrep} is the same as @samp{grep -E}. @sc{fgrep} is the
|
|---|
| 699 | same as @samp{grep -F}.
|
|---|
| 700 |
|
|---|
| 701 | @node Regular Expressions
|
|---|
| 702 | @chapter Regular Expressions
|
|---|
| 703 | @cindex regular expressions
|
|---|
| 704 |
|
|---|
| 705 | A @dfn{regular expression} is a pattern that describes a set of strings.
|
|---|
| 706 | Regular expressions are constructed analogously to arithmetic expressions,
|
|---|
| 707 | by using various operators to combine smaller expressions.
|
|---|
| 708 | @command{grep} understands two different versions of regular expression
|
|---|
| 709 | syntax: ``basic''(BRE) and ``extended''(ERE). In @sc{gnu} @command{grep},
|
|---|
| 710 | there is no difference in available functionality using either syntax.
|
|---|
| 711 | In other implementations, basic regular expressions are less powerful.
|
|---|
| 712 | The following description applies to extended regular expressions;
|
|---|
| 713 | differences for basic regular expressions are summarized afterwards.
|
|---|
| 714 |
|
|---|
| 715 | The fundamental building blocks are the regular expressions that match
|
|---|
| 716 | a single character. Most characters, including all letters and digits,
|
|---|
| 717 | are regular expressions that match themselves. Any metacharacter
|
|---|
| 718 | with special meaning may be quoted by preceding it with a backslash.
|
|---|
| 719 |
|
|---|
| 720 | A regular expression may be followed by one of several
|
|---|
| 721 | repetition operators:
|
|---|
| 722 |
|
|---|
| 723 | @table @samp
|
|---|
| 724 |
|
|---|
| 725 | @item .
|
|---|
| 726 | @opindex .
|
|---|
| 727 | @cindex dot
|
|---|
| 728 | @cindex period
|
|---|
| 729 | The period @samp{.} matches any single character.
|
|---|
| 730 |
|
|---|
| 731 | @item ?
|
|---|
| 732 | @opindex ?
|
|---|
| 733 | @cindex question mark
|
|---|
| 734 | @cindex match sub-expression at most once
|
|---|
| 735 | The preceding item is optional and will be matched at most once.
|
|---|
| 736 |
|
|---|
| 737 | @item *
|
|---|
| 738 | @opindex *
|
|---|
| 739 | @cindex asterisk
|
|---|
| 740 | @cindex match sub-expression zero or more times
|
|---|
| 741 | The preceding item will be matched zero or more times.
|
|---|
| 742 |
|
|---|
| 743 | @item +
|
|---|
| 744 | @opindex +
|
|---|
| 745 | @cindex plus sign
|
|---|
| 746 | The preceding item will be matched one or more times.
|
|---|
| 747 |
|
|---|
| 748 | @item @{@var{n}@}
|
|---|
| 749 | @opindex @{n@}
|
|---|
| 750 | @cindex braces, one argument
|
|---|
| 751 | @cindex match sub-expression n times
|
|---|
| 752 | The preceding item is matched exactly @var{n} times.
|
|---|
| 753 |
|
|---|
| 754 | @item @{@var{n},@}
|
|---|
| 755 | @opindex @{n,@}
|
|---|
| 756 | @cindex braces, second argument omitted
|
|---|
| 757 | @cindex match sub-expression n or more times
|
|---|
| 758 | The preceding item is matched n or more times.
|
|---|
| 759 |
|
|---|
| 760 | @item @{@var{n},@var{m}@}
|
|---|
| 761 | @opindex @{n,m@}
|
|---|
| 762 | @cindex braces, two arguments
|
|---|
| 763 | The preceding item is matched at least @var{n} times, but not more than
|
|---|
| 764 | @var{m} times.
|
|---|
| 765 |
|
|---|
| 766 | @end table
|
|---|
| 767 |
|
|---|
| 768 | Two regular expressions may be concatenated; the resulting regular
|
|---|
| 769 | expression matches any string formed by concatenating two substrings
|
|---|
| 770 | that respectively match the concatenated subexpressions.
|
|---|
| 771 |
|
|---|
| 772 | Two regular expressions may be joined by the infix operator @samp{|}; the
|
|---|
| 773 | resulting regular expression matches any string matching either subexpression.
|
|---|
| 774 |
|
|---|
| 775 | Repetition takes precedence over concatenation, which in turn
|
|---|
| 776 | takes precedence over alternation. A whole subexpression may be
|
|---|
| 777 | enclosed in parentheses to override these precedence rules.
|
|---|
| 778 |
|
|---|
| 779 | @section Character Class
|
|---|
| 780 |
|
|---|
| 781 | @cindex bracket expression
|
|---|
| 782 | @cindex character class
|
|---|
| 783 | A @dfn{bracket expression} is a list of characters enclosed by @samp{[} and
|
|---|
| 784 | @samp{]}. It matches any single character in that list; if the first
|
|---|
| 785 | character of the list is the caret @samp{^}, then it matches any character
|
|---|
| 786 | @strong{not} in the list. For example, the regular expression
|
|---|
| 787 | @samp{[0123456789]} matches any single digit.
|
|---|
| 788 |
|
|---|
| 789 | @cindex range expression
|
|---|
| 790 | Within a bracket expression, a @dfn{range expression} consists of two
|
|---|
| 791 | characters separated by a hyphen. It matches any single character that
|
|---|
| 792 | sorts between the two characters, inclusive, using the locale's
|
|---|
| 793 | collating sequence and character set. For example, in the default C
|
|---|
| 794 | locale, @samp{[a-d]} is equivalent to @samp{[abcd]}. Many locales sort
|
|---|
| 795 | characters in dictionary order, and in these locales @samp{[a-d]} is
|
|---|
| 796 | typically not equivalent to @samp{[abcd]}; it might be equivalent to
|
|---|
| 797 | @samp{[aBbCcDd]}, for example. To obtain the traditional interpretation
|
|---|
| 798 | of bracket expressions, you can use the C locale by setting the
|
|---|
| 799 | @env{LC_ALL} environment variable to the value @samp{C}.
|
|---|
| 800 |
|
|---|
| 801 | Finally, certain named classes of characters are predefined within
|
|---|
| 802 | bracket expressions, as follows.
|
|---|
| 803 | Their interpretation depends on the @code{LC_CTYPE} locale; the
|
|---|
| 804 | interpretation below is that of the C locale, which is the default
|
|---|
| 805 | if no @code{LC_CTYPE} locale is specified.
|
|---|
| 806 |
|
|---|
| 807 | @cindex classes of characters
|
|---|
| 808 | @cindex character classes
|
|---|
| 809 | @table @samp
|
|---|
| 810 |
|
|---|
| 811 | @item [:alnum:]
|
|---|
| 812 | @opindex alnum
|
|---|
| 813 | @cindex alphanumeric characters
|
|---|
| 814 | Alphanumeric characters:
|
|---|
| 815 | @samp{[:alpha:]} and @samp{[:digit:]}.
|
|---|
| 816 |
|
|---|
| 817 | @item [:alpha:]
|
|---|
| 818 | @opindex alpha
|
|---|
| 819 | @cindex alphabetic characters
|
|---|
| 820 | Alphabetic characters:
|
|---|
| 821 | @samp{[:lower:]} and @samp{[:upper:]}.
|
|---|
| 822 |
|
|---|
| 823 | @item [:blank:]
|
|---|
| 824 | @opindex blank
|
|---|
| 825 | @cindex blank characters
|
|---|
| 826 | Blank characters:
|
|---|
| 827 | space and tab.
|
|---|
| 828 |
|
|---|
| 829 | @item [:cntrl:]
|
|---|
| 830 | @opindex cntrl
|
|---|
| 831 | @cindex control characters
|
|---|
| 832 | Control characters. In @sc{ascii}, these characters have octal codes 000
|
|---|
| 833 | through 037, and 177 (@code{DEL}). In other character sets, these are
|
|---|
| 834 | the equivalent characters, if any.
|
|---|
| 835 |
|
|---|
| 836 | @item [:digit:]
|
|---|
| 837 | @opindex digit
|
|---|
| 838 | @cindex digit characters
|
|---|
| 839 | @cindex numeric characters
|
|---|
| 840 | Digits: @code{0 1 2 3 4 5 6 7 8 9}.
|
|---|
| 841 |
|
|---|
| 842 | @item [:graph:]
|
|---|
| 843 | @opindex graph
|
|---|
| 844 | @cindex graphic characters
|
|---|
| 845 | Graphical characters:
|
|---|
| 846 | @samp{[:alnum:]} and @samp{[:punct:]}.
|
|---|
| 847 |
|
|---|
| 848 | @item [:lower:]
|
|---|
| 849 | @opindex lower
|
|---|
| 850 | @cindex lower-case letters
|
|---|
| 851 | Lower-case letters:
|
|---|
| 852 | @code{a b c d e f g h i j k l m n o p q r s t u v w x y z}.
|
|---|
| 853 |
|
|---|
| 854 | @item [:print:]
|
|---|
| 855 | @opindex print
|
|---|
| 856 | @cindex printable characters
|
|---|
| 857 | Printable characters:
|
|---|
| 858 | @samp{[:alnum:]}, @samp{[:punct:]}, and space.
|
|---|
| 859 |
|
|---|
| 860 | @item [:punct:]
|
|---|
| 861 | @opindex punct
|
|---|
| 862 | @cindex punctuation characters
|
|---|
| 863 | Punctuation characters:
|
|---|
| 864 | @code{!@: " # $ % & ' ( ) * + , - .@: / : ; < = > ?@: @@ [ \ ] ^ _ ` @{ | @} ~}.
|
|---|
| 865 |
|
|---|
| 866 | @item [:space:]
|
|---|
| 867 | @opindex space
|
|---|
| 868 | @cindex space characters
|
|---|
| 869 | @cindex whitespace characters
|
|---|
| 870 | Space characters:
|
|---|
| 871 | tab, newline, vertical tab, form feed, carriage return, and space.
|
|---|
| 872 |
|
|---|
| 873 | @item [:upper:]
|
|---|
| 874 | @opindex upper
|
|---|
| 875 | @cindex upper-case letters
|
|---|
| 876 | Upper-case letters:
|
|---|
| 877 | @code{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}.
|
|---|
| 878 |
|
|---|
| 879 | @item [:xdigit:]
|
|---|
| 880 | @opindex xdigit
|
|---|
| 881 | @cindex xdigit class
|
|---|
| 882 | @cindex hexadecimal digits
|
|---|
| 883 | Hexadecimal digits:
|
|---|
| 884 | @code{0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f}.
|
|---|
| 885 |
|
|---|
| 886 | @end table
|
|---|
| 887 | For example, @samp{[[:alnum:]]} means @samp{[0-9A-Za-z]}, except the latter
|
|---|
| 888 | depends upon the C locale and the @sc{ascii} character
|
|---|
| 889 | encoding, whereas the former is independent of locale and character set.
|
|---|
| 890 | (Note that the brackets in these class names are
|
|---|
| 891 | part of the symbolic names, and must be included in addition to
|
|---|
| 892 | the brackets delimiting the bracket list.)
|
|---|
| 893 |
|
|---|
| 894 | Most metacharacters lose their special meaning inside lists.
|
|---|
| 895 |
|
|---|
| 896 | @table @samp
|
|---|
| 897 | @item ]
|
|---|
| 898 | ends the list if it's not the first list item. So, if you want to make
|
|---|
| 899 | the @samp{]} character a list item, you must put it first.
|
|---|
| 900 |
|
|---|
| 901 | @item [.
|
|---|
| 902 | represents the open collating symbol.
|
|---|
| 903 |
|
|---|
| 904 | @item .]
|
|---|
| 905 | represents the close collating symbol.
|
|---|
| 906 |
|
|---|
| 907 | @item [=
|
|---|
| 908 | represents the open equivalence class.
|
|---|
| 909 |
|
|---|
| 910 | @item =]
|
|---|
| 911 | represents the close equivalence class.
|
|---|
| 912 |
|
|---|
| 913 | @item [:
|
|---|
| 914 | represents the open character class followed by a valid character class name.
|
|---|
| 915 |
|
|---|
| 916 | @item :]
|
|---|
| 917 | represents the close character class followed by a valid character class name.
|
|---|
| 918 |
|
|---|
| 919 | @item -
|
|---|
| 920 | represents the range if it's not first or last in a list or the ending point
|
|---|
| 921 | of a range.
|
|---|
| 922 |
|
|---|
| 923 | @item ^
|
|---|
| 924 | represents the characters not in the list. If you want to make the @samp{^}
|
|---|
| 925 | character a list item, place it anywhere but first.
|
|---|
| 926 |
|
|---|
| 927 | @end table
|
|---|
| 928 |
|
|---|
| 929 | @section Backslash Character
|
|---|
| 930 | @cindex backslash
|
|---|
| 931 |
|
|---|
| 932 | The @samp{\} when followed by certain ordinary characters take a special
|
|---|
| 933 | meaning :
|
|---|
| 934 |
|
|---|
| 935 | @table @samp
|
|---|
| 936 |
|
|---|
| 937 | @item @samp{\b}
|
|---|
| 938 | Match the empty string at the edge of a word.
|
|---|
| 939 |
|
|---|
| 940 | @item @samp{\B}
|
|---|
| 941 | Match the empty string provided it's not at the edge of a word.
|
|---|
| 942 |
|
|---|
| 943 | @item @samp{\<}
|
|---|
| 944 | Match the empty string at the beginning of word.
|
|---|
| 945 |
|
|---|
| 946 | @item @samp{\>}
|
|---|
| 947 | Match the empty string at the end of word.
|
|---|
| 948 |
|
|---|
| 949 | @item @samp{\w}
|
|---|
| 950 | Match word constituent, it is a synonym for @samp{[[:alnum:]]}.
|
|---|
| 951 |
|
|---|
| 952 | @item @samp{\W}
|
|---|
| 953 | Match non word constituent, it is a synonym for @samp{[^[:alnum:]]}.
|
|---|
| 954 |
|
|---|
| 955 | @end table
|
|---|
| 956 |
|
|---|
| 957 | For example , @samp{\brat\b} matches the separate word @samp{rat},
|
|---|
| 958 | @samp{c\Brat\Be} matches @samp{crate}, but @samp{dirty \Brat} doesn't
|
|---|
| 959 | match @samp{dirty rat}.
|
|---|
| 960 |
|
|---|
| 961 | @section Anchoring
|
|---|
| 962 | @cindex anchoring
|
|---|
| 963 |
|
|---|
| 964 | The caret @samp{^} and the dollar sign @samp{$} are metacharacters that
|
|---|
| 965 | respectively match the empty string at the beginning and end of a line.
|
|---|
| 966 |
|
|---|
| 967 | @section Back-reference
|
|---|
| 968 | @cindex back-reference
|
|---|
| 969 |
|
|---|
| 970 | The back-reference @samp{\@var{n}}, where @var{n} is a single digit, matches
|
|---|
| 971 | the substring previously matched by the @var{n}th parenthesized subexpression
|
|---|
| 972 | of the regular expression. For example, @samp{(a)\1} matches @samp{aa}.
|
|---|
| 973 | When use with alternation if the group does not participate in the match, then
|
|---|
| 974 | the back-reference makes the whole match fail. For example, @samp{a(.)|b\1}
|
|---|
| 975 | will not match @samp{ba}. When multiple regular expressions are given with
|
|---|
| 976 | @samp{-e} or from a file @samp{-f file}, the back-referecences are local to
|
|---|
| 977 | each expression.
|
|---|
| 978 |
|
|---|
| 979 | @section Basic vs Extended
|
|---|
| 980 | @cindex basic regular expressions
|
|---|
| 981 |
|
|---|
| 982 | In basic regular expressions the metacharacters @samp{?}, @samp{+},
|
|---|
| 983 | @samp{@{}, @samp{|}, @samp{(}, and @samp{)} lose their special meaning;
|
|---|
| 984 | instead use the backslashed versions @samp{\?}, @samp{\+}, @samp{\@{},
|
|---|
| 985 | @samp{\|}, @samp{\(}, and @samp{\)}.
|
|---|
| 986 |
|
|---|
| 987 | @cindex interval specifications
|
|---|
| 988 | Traditional @command{egrep} did not support the @samp{@{} metacharacter,
|
|---|
| 989 | and some @command{egrep} implementations support @samp{\@{} instead, so
|
|---|
| 990 | portable scripts should avoid @samp{@{} in @samp{egrep} patterns and
|
|---|
| 991 | should use @samp{[@{]} to match a literal @samp{@{}.
|
|---|
| 992 |
|
|---|
| 993 | @sc{gnu} @command{egrep} attempts to support traditional usage by
|
|---|
| 994 | assuming that @samp{@{} is not special if it would be the start of an
|
|---|
| 995 | invalid interval specification. For example, the shell command
|
|---|
| 996 | @samp{egrep '@{1'} searches for the two-character string @samp{@{1}
|
|---|
| 997 | instead of reporting a syntax error in the regular expression.
|
|---|
| 998 | @sc{posix.2} allows this behavior as an extension, but portable scripts
|
|---|
| 999 | should avoid it.
|
|---|
| 1000 |
|
|---|
| 1001 | @node Usage
|
|---|
| 1002 | @chapter Usage
|
|---|
| 1003 |
|
|---|
| 1004 | @cindex Usage, examples
|
|---|
| 1005 | Here is an example shell command that invokes @sc{gnu} @command{grep}:
|
|---|
| 1006 |
|
|---|
| 1007 | @example
|
|---|
| 1008 | grep -i 'hello.*world' menu.h main.c
|
|---|
| 1009 | @end example
|
|---|
| 1010 |
|
|---|
| 1011 | @noindent
|
|---|
| 1012 | This lists all lines in the files @file{menu.h} and @file{main.c} that
|
|---|
| 1013 | contain the string @samp{hello} followed by the string @samp{world};
|
|---|
| 1014 | this is because @samp{.*} matches zero or more characters within a line.
|
|---|
| 1015 | @xref{Regular Expressions}. The @samp{-i} option causes @command{grep}
|
|---|
| 1016 | to ignore case, causing it to match the line @samp{Hello, world!}, which
|
|---|
| 1017 | it would not otherwise match. @xref{Invoking}, for more details about
|
|---|
| 1018 | how to invoke @command{grep}.
|
|---|
| 1019 |
|
|---|
| 1020 | @cindex Using @command{grep}, Q&A
|
|---|
| 1021 | @cindex FAQ about @command{grep} usage
|
|---|
| 1022 | Here are some common questions and answers about @command{grep} usage.
|
|---|
| 1023 |
|
|---|
| 1024 | @enumerate
|
|---|
| 1025 |
|
|---|
| 1026 | @item
|
|---|
| 1027 | How can I list just the names of matching files?
|
|---|
| 1028 |
|
|---|
| 1029 | @example
|
|---|
| 1030 | grep -l 'main' *.c
|
|---|
| 1031 | @end example
|
|---|
| 1032 |
|
|---|
| 1033 | @noindent
|
|---|
| 1034 | lists the names of all C files in the current directory whose contents
|
|---|
| 1035 | mention @samp{main}.
|
|---|
| 1036 |
|
|---|
| 1037 | @item
|
|---|
| 1038 | How do I search directories recursively?
|
|---|
| 1039 |
|
|---|
| 1040 | @example
|
|---|
| 1041 | grep -r 'hello' /home/gigi
|
|---|
| 1042 | @end example
|
|---|
| 1043 |
|
|---|
| 1044 | @noindent
|
|---|
| 1045 | searches for @samp{hello} in all files under the directory
|
|---|
| 1046 | @file{/home/gigi}. For more control of which files are searched, use
|
|---|
| 1047 | @command{find}, @command{grep} and @command{xargs}. For example,
|
|---|
| 1048 | the following command searches only C files:
|
|---|
| 1049 |
|
|---|
| 1050 | @smallexample
|
|---|
| 1051 | find /home/gigi -name '*.c' -print | xargs grep 'hello' /dev/null
|
|---|
| 1052 | @end smallexample
|
|---|
| 1053 |
|
|---|
| 1054 | This differs from the command:
|
|---|
| 1055 |
|
|---|
| 1056 | @example
|
|---|
| 1057 | grep -r 'hello' *.c
|
|---|
| 1058 | @end example
|
|---|
| 1059 |
|
|---|
| 1060 | which merely looks for @samp{hello} in all files in the current
|
|---|
| 1061 | directory whose names end in @samp{.c}. Here the @option{-r} is
|
|---|
| 1062 | probably unnecessary, as recursion occurs only in the unlikely event
|
|---|
| 1063 | that one of @samp{.c} files is a directory.
|
|---|
| 1064 |
|
|---|
| 1065 | @item
|
|---|
| 1066 | What if a pattern has a leading @samp{-}?
|
|---|
| 1067 |
|
|---|
| 1068 | @example
|
|---|
| 1069 | grep -e '--cut here--' *
|
|---|
| 1070 | @end example
|
|---|
| 1071 |
|
|---|
| 1072 | @noindent
|
|---|
| 1073 | searches for all lines matching @samp{--cut here--}. Without @samp{-e},
|
|---|
| 1074 | @command{grep} would attempt to parse @samp{--cut here--} as a list of
|
|---|
| 1075 | options.
|
|---|
| 1076 |
|
|---|
| 1077 | @item
|
|---|
| 1078 | Suppose I want to search for a whole word, not a part of a word?
|
|---|
| 1079 |
|
|---|
| 1080 | @example
|
|---|
| 1081 | grep -w 'hello' *
|
|---|
| 1082 | @end example
|
|---|
| 1083 |
|
|---|
| 1084 | @noindent
|
|---|
| 1085 | searches only for instances of @samp{hello} that are entire words; it
|
|---|
| 1086 | does not match @samp{Othello}. For more control, use @samp{\<} and
|
|---|
| 1087 | @samp{\>} to match the start and end of words. For example:
|
|---|
| 1088 |
|
|---|
| 1089 | @example
|
|---|
| 1090 | grep 'hello\>' *
|
|---|
| 1091 | @end example
|
|---|
| 1092 |
|
|---|
| 1093 | @noindent
|
|---|
| 1094 | searches only for words ending in @samp{hello}, so it matches the word
|
|---|
| 1095 | @samp{Othello}.
|
|---|
| 1096 |
|
|---|
| 1097 | @item
|
|---|
| 1098 | How do I output context around the matching lines?
|
|---|
| 1099 |
|
|---|
| 1100 | @example
|
|---|
| 1101 | grep -C 2 'hello' *
|
|---|
| 1102 | @end example
|
|---|
| 1103 |
|
|---|
| 1104 | @noindent
|
|---|
| 1105 | prints two lines of context around each matching line.
|
|---|
| 1106 |
|
|---|
| 1107 | @item
|
|---|
| 1108 | How do I force grep to print the name of the file?
|
|---|
| 1109 |
|
|---|
| 1110 | Append @file{/dev/null}:
|
|---|
| 1111 |
|
|---|
| 1112 | @example
|
|---|
| 1113 | grep 'eli' /etc/passwd /dev/null
|
|---|
| 1114 | @end example
|
|---|
| 1115 |
|
|---|
| 1116 | gets you:
|
|---|
| 1117 |
|
|---|
| 1118 | @smallexample
|
|---|
| 1119 | /etc/passwd:eli:DNGUTF58.IMe.:98:11:Eli Smith:/home/do/eli:/bin/bash
|
|---|
| 1120 | @end smallexample
|
|---|
| 1121 |
|
|---|
| 1122 | @item
|
|---|
| 1123 | Why do people use strange regular expressions on @command{ps} output?
|
|---|
| 1124 |
|
|---|
| 1125 | @example
|
|---|
| 1126 | ps -ef | grep '[c]ron'
|
|---|
| 1127 | @end example
|
|---|
| 1128 |
|
|---|
| 1129 | If the pattern had been written without the square brackets, it would
|
|---|
| 1130 | have matched not only the @command{ps} output line for @command{cron},
|
|---|
| 1131 | but also the @command{ps} output line for @command{grep}.
|
|---|
| 1132 | Note that some platforms @command{ps} limit the ouput to the width
|
|---|
| 1133 | of the screen, grep does not have any limit on the length of a line
|
|---|
| 1134 | except the available memory.
|
|---|
| 1135 |
|
|---|
| 1136 | @item
|
|---|
| 1137 | Why does @command{grep} report ``Binary file matches''?
|
|---|
| 1138 |
|
|---|
| 1139 | If @command{grep} listed all matching ``lines'' from a binary file, it
|
|---|
| 1140 | would probably generate output that is not useful, and it might even
|
|---|
| 1141 | muck up your display. So @sc{gnu} @command{grep} suppresses output from
|
|---|
| 1142 | files that appear to be binary files. To force @sc{gnu} @command{grep}
|
|---|
| 1143 | to output lines even from files that appear to be binary, use the
|
|---|
| 1144 | @samp{-a} or @samp{--binary-files=text} option. To eliminate the
|
|---|
| 1145 | ``Binary file matches'' messages, use the @samp{-I} or
|
|---|
| 1146 | @samp{--binary-files=without-match} option.
|
|---|
| 1147 |
|
|---|
| 1148 | @item
|
|---|
| 1149 | Why doesn't @samp{grep -lv} print nonmatching file names?
|
|---|
| 1150 |
|
|---|
| 1151 | @samp{grep -lv} lists the names of all files containing one or more
|
|---|
| 1152 | lines that do not match. To list the names of all files that contain no
|
|---|
| 1153 | matching lines, use the @samp{-L} or @samp{--files-without-match}
|
|---|
| 1154 | option.
|
|---|
| 1155 |
|
|---|
| 1156 | @item
|
|---|
| 1157 | I can do @sc{or} with @samp{|}, but what about @sc{and}?
|
|---|
| 1158 |
|
|---|
| 1159 | @example
|
|---|
| 1160 | grep 'paul' /etc/motd | grep 'franc,ois'
|
|---|
| 1161 | @end example
|
|---|
| 1162 |
|
|---|
| 1163 | @noindent
|
|---|
| 1164 | finds all lines that contain both @samp{paul} and @samp{franc,ois}.
|
|---|
| 1165 |
|
|---|
| 1166 | @item
|
|---|
| 1167 | How can I search in both standard input and in files?
|
|---|
| 1168 |
|
|---|
| 1169 | Use the special file name @samp{-}:
|
|---|
| 1170 |
|
|---|
| 1171 | @example
|
|---|
| 1172 | cat /etc/passwd | grep 'alain' - /etc/motd
|
|---|
| 1173 | @end example
|
|---|
| 1174 |
|
|---|
| 1175 | @item
|
|---|
| 1176 | @cindex palindromes
|
|---|
| 1177 | How to express palindromes in a regular expression?
|
|---|
| 1178 |
|
|---|
| 1179 | It can be done by using the back referecences, for example a palindrome
|
|---|
| 1180 | of 4 chararcters can be written in BRE.
|
|---|
| 1181 |
|
|---|
| 1182 | @example
|
|---|
| 1183 | grep -w -e '\(.\)\(.\).\2\1' file
|
|---|
| 1184 | @end example
|
|---|
| 1185 |
|
|---|
| 1186 | It matches the word "radar" or "civic".
|
|---|
| 1187 |
|
|---|
| 1188 | Guglielmo Bondioni proposed a single RE that finds all the palindromes up to 19
|
|---|
| 1189 | characters long.
|
|---|
| 1190 |
|
|---|
| 1191 | @example
|
|---|
| 1192 | egrep -e '^(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?).?\9\8\7\6\5\4\3\2\1$' file
|
|---|
| 1193 | @end example
|
|---|
| 1194 |
|
|---|
| 1195 | Note this is done by using GNU ERE extensions, it might not be portable on
|
|---|
| 1196 | other greps.
|
|---|
| 1197 |
|
|---|
| 1198 | @item
|
|---|
| 1199 | Why are my expressions whith the vertical bar fail?
|
|---|
| 1200 |
|
|---|
| 1201 | @example
|
|---|
| 1202 | /bin/echo "ba" | egrep '(a)\1|(b)\1'
|
|---|
| 1203 | @end example
|
|---|
| 1204 |
|
|---|
| 1205 | The first alternate branch fails then the first group was not in the match
|
|---|
| 1206 | this will make the second alternate branch fails. For example, "aaba" will
|
|---|
| 1207 | match, the first group participate in the match and can be reuse in the
|
|---|
| 1208 | second branch.
|
|---|
| 1209 |
|
|---|
| 1210 | @item
|
|---|
| 1211 | What do @command{grep, fgrep, egrep} stand for ?
|
|---|
| 1212 |
|
|---|
| 1213 | grep comes from the way line editing was done on Unix. For example,
|
|---|
| 1214 | @command{ed} uses this syntax to print a list of matching lines on the screen.
|
|---|
| 1215 |
|
|---|
| 1216 | @example
|
|---|
| 1217 | global/regular expression/print
|
|---|
| 1218 | g/re/p
|
|---|
| 1219 | @end example
|
|---|
| 1220 |
|
|---|
| 1221 | @command{fgrep} stands for Fixed @command{grep}, @command{egrep} Extended
|
|---|
| 1222 | @command{grep}.
|
|---|
| 1223 |
|
|---|
| 1224 | @end enumerate
|
|---|
| 1225 |
|
|---|
| 1226 | @node Reporting Bugs, Copying, Usage, Top
|
|---|
| 1227 | @chapter Reporting bugs
|
|---|
| 1228 |
|
|---|
| 1229 | @cindex Bugs, reporting
|
|---|
| 1230 | Email bug reports to @email{bug-grep@@gnu.org}.
|
|---|
| 1231 |
|
|---|
| 1232 | Large repetition counts in the @samp{@{n,m@}} construct may cause
|
|---|
| 1233 | @command{grep} to use lots of memory. In addition, certain other
|
|---|
| 1234 | obscure regular expressions require exponential time and
|
|---|
| 1235 | space, and may cause grep to run out of memory.
|
|---|
| 1236 | Back-references are very slow, and may require exponential time.
|
|---|
| 1237 |
|
|---|
| 1238 | @node Copying, GNU General Public License, Reporting Bugs, Top
|
|---|
| 1239 | @chapter Copying
|
|---|
| 1240 | @cindex Copying
|
|---|
| 1241 | GNU grep is licensed under the GNU GPL, which makes it @dfn{free
|
|---|
| 1242 | software}.
|
|---|
| 1243 |
|
|---|
| 1244 | Please note that ``free'' in ``free software'' refers to liberty, not
|
|---|
| 1245 | price. As some GNU project advocates like to point out, think of ``free
|
|---|
| 1246 | speech'' rather than ``free beer''. The exact and legally binding
|
|---|
| 1247 | distribution terms are spelled out below; in short, you have the right
|
|---|
| 1248 | (freedom) to run and change grep and distribute it to other people, and
|
|---|
| 1249 | even---if you want---charge money for doing either. The important
|
|---|
| 1250 | restriction is that you have to grant your recipients the same rights
|
|---|
| 1251 | and impose the same restrictions.
|
|---|
| 1252 |
|
|---|
| 1253 | This method of licensing software is also known as @dfn{open source}
|
|---|
| 1254 | because, among other things, it makes sure that all recipients will
|
|---|
| 1255 | receive the source code along with the program, and be able to improve
|
|---|
| 1256 | it. The GNU project prefers the term ``free software'' for reasons
|
|---|
| 1257 | outlined at
|
|---|
| 1258 | @url{http://www.gnu.org/philosophy/free-software-for-freedom.html}.
|
|---|
| 1259 |
|
|---|
| 1260 | The exact license terms are defined by this paragraph and the GNU
|
|---|
| 1261 | General Public License it refers to:
|
|---|
| 1262 |
|
|---|
| 1263 | @quotation
|
|---|
| 1264 | GNU grep is free software; you can redistribute it and/or modify it
|
|---|
| 1265 | under the terms of the GNU General Public License as published by the
|
|---|
| 1266 | Free Software Foundation; either version 2 of the License, or (at your
|
|---|
| 1267 | option) any later version.
|
|---|
| 1268 |
|
|---|
| 1269 | GNU grep is distributed in the hope that it will be useful, but WITHOUT
|
|---|
| 1270 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|---|
| 1271 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|---|
| 1272 | for more details.
|
|---|
| 1273 |
|
|---|
| 1274 | A copy of the GNU General Public License is included as part of this
|
|---|
| 1275 | manual; if you did not receive it, write to the Free Software
|
|---|
| 1276 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|---|
| 1277 | @end quotation
|
|---|
| 1278 |
|
|---|
| 1279 | In addition to this, this manual is free in the same sense:
|
|---|
| 1280 |
|
|---|
| 1281 | @quotation
|
|---|
| 1282 | Permission is granted to copy, distribute and/or modify this document
|
|---|
| 1283 | under the terms of the GNU Free Documentation License, Version 1.1 or
|
|---|
| 1284 | any later version published by the Free Software Foundation; with the
|
|---|
| 1285 | Invariant Sections being ``GNU General Public License'' and ``GNU Free
|
|---|
| 1286 | Documentation License'', with no Front-Cover Texts, and with no
|
|---|
| 1287 | Back-Cover Texts. A copy of the license is included in the section
|
|---|
| 1288 | entitled ``GNU Free Documentation License''.
|
|---|
| 1289 | @end quotation
|
|---|
| 1290 |
|
|---|
| 1291 | @c #### Maybe we should wrap these licenses in ifinfo? Stallman says
|
|---|
| 1292 | @c that the GFDL needs to be present in the manual, and to me it would
|
|---|
| 1293 | @c suck to include the license for the manual and not the license for
|
|---|
| 1294 | @c the program.
|
|---|
| 1295 |
|
|---|
| 1296 | The full texts of the GNU General Public License and of the GNU Free
|
|---|
| 1297 | Documentation License are available below.
|
|---|
| 1298 |
|
|---|
| 1299 | @menu
|
|---|
| 1300 | * GNU General Public License:: GNU GPL
|
|---|
| 1301 | * GNU Free Documentation License:: GNU FDL
|
|---|
| 1302 | @end menu
|
|---|
| 1303 |
|
|---|
| 1304 | @node GNU General Public License, GNU Free Documentation License, Copying, Copying
|
|---|
| 1305 | @section GNU General Public License
|
|---|
| 1306 | @center Version 2, June 1991
|
|---|
| 1307 | @cindex GPL, GNU General Public License
|
|---|
| 1308 |
|
|---|
| 1309 | @display
|
|---|
| 1310 | Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
|
|---|
| 1311 | 675 Mass Ave, Cambridge, MA 02139, USA
|
|---|
| 1312 |
|
|---|
| 1313 | Everyone is permitted to copy and distribute verbatim copies
|
|---|
| 1314 | of this license document, but changing it is not allowed.
|
|---|
| 1315 | @end display
|
|---|
| 1316 |
|
|---|
| 1317 | @unnumberedsec Preamble
|
|---|
| 1318 |
|
|---|
| 1319 | The licenses for most software are designed to take away your
|
|---|
| 1320 | freedom to share and change it. By contrast, the GNU General Public
|
|---|
| 1321 | License is intended to guarantee your freedom to share and change free
|
|---|
| 1322 | software---to make sure the software is free for all its users. This
|
|---|
| 1323 | General Public License applies to most of the Free Software
|
|---|
| 1324 | Foundation's software and to any other program whose authors commit to
|
|---|
| 1325 | using it. (Some other Free Software Foundation software is covered by
|
|---|
| 1326 | the GNU Library General Public License instead.) You can apply it to
|
|---|
| 1327 | your programs, too.
|
|---|
| 1328 |
|
|---|
| 1329 | When we speak of free software, we are referring to freedom, not
|
|---|
| 1330 | price. Our General Public Licenses are designed to make sure that you
|
|---|
| 1331 | have the freedom to distribute copies of free software (and charge for
|
|---|
| 1332 | this service if you wish), that you receive source code or can get it
|
|---|
| 1333 | if you want it, that you can change the software or use pieces of it
|
|---|
| 1334 | in new free programs; and that you know you can do these things.
|
|---|
| 1335 |
|
|---|
| 1336 | To protect your rights, we need to make restrictions that forbid
|
|---|
| 1337 | anyone to deny you these rights or to ask you to surrender the rights.
|
|---|
| 1338 | These restrictions translate to certain responsibilities for you if you
|
|---|
| 1339 | distribute copies of the software, or if you modify it.
|
|---|
| 1340 |
|
|---|
| 1341 | For example, if you distribute copies of such a program, whether
|
|---|
| 1342 | gratis or for a fee, you must give the recipients all the rights that
|
|---|
| 1343 | you have. You must make sure that they, too, receive or can get the
|
|---|
| 1344 | source code. And you must show them these terms so they know their
|
|---|
| 1345 | rights.
|
|---|
| 1346 |
|
|---|
| 1347 | We protect your rights with two steps: (1) copyright the software, and
|
|---|
| 1348 | (2) offer you this license which gives you legal permission to copy,
|
|---|
| 1349 | distribute and/or modify the software.
|
|---|
| 1350 |
|
|---|
| 1351 | Also, for each author's protection and ours, we want to make certain
|
|---|
| 1352 | that everyone understands that there is no warranty for this free
|
|---|
| 1353 | software. If the software is modified by someone else and passed on, we
|
|---|
| 1354 | want its recipients to know that what they have is not the original, so
|
|---|
| 1355 | that any problems introduced by others will not reflect on the original
|
|---|
| 1356 | authors' reputations.
|
|---|
| 1357 |
|
|---|
| 1358 | Finally, any free program is threatened constantly by software
|
|---|
| 1359 | patents. We wish to avoid the danger that redistributors of a free
|
|---|
| 1360 | program will individually obtain patent licenses, in effect making the
|
|---|
| 1361 | program proprietary. To prevent this, we have made it clear that any
|
|---|
| 1362 | patent must be licensed for everyone's free use or not licensed at all.
|
|---|
| 1363 |
|
|---|
| 1364 | The precise terms and conditions for copying, distribution and
|
|---|
| 1365 | modification follow.
|
|---|
| 1366 |
|
|---|
| 1367 | @iftex
|
|---|
| 1368 | @unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|---|
| 1369 | @end iftex
|
|---|
| 1370 | @ifinfo
|
|---|
| 1371 | @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|---|
| 1372 | @end ifinfo
|
|---|
| 1373 |
|
|---|
| 1374 | @enumerate
|
|---|
| 1375 | @item
|
|---|
| 1376 | This License applies to any program or other work which contains
|
|---|
| 1377 | a notice placed by the copyright holder saying it may be distributed
|
|---|
| 1378 | under the terms of this General Public License. The ``Program'', below,
|
|---|
| 1379 | refers to any such program or work, and a ``work based on the Program''
|
|---|
| 1380 | means either the Program or any derivative work under copyright law:
|
|---|
| 1381 | that is to say, a work containing the Program or a portion of it,
|
|---|
| 1382 | either verbatim or with modifications and/or translated into another
|
|---|
| 1383 | language. (Hereinafter, translation is included without limitation in
|
|---|
| 1384 | the term ``modification''.) Each licensee is addressed as ``you''.
|
|---|
| 1385 |
|
|---|
| 1386 | Activities other than copying, distribution and modification are not
|
|---|
| 1387 | covered by this License; they are outside its scope. The act of
|
|---|
| 1388 | running the Program is not restricted, and the output from the Program
|
|---|
| 1389 | is covered only if its contents constitute a work based on the
|
|---|
| 1390 | Program (independent of having been made by running the Program).
|
|---|
| 1391 | Whether that is true depends on what the Program does.
|
|---|
| 1392 |
|
|---|
| 1393 | @item
|
|---|
| 1394 | You may copy and distribute verbatim copies of the Program's
|
|---|
| 1395 | source code as you receive it, in any medium, provided that you
|
|---|
| 1396 | conspicuously and appropriately publish on each copy an appropriate
|
|---|
| 1397 | copyright notice and disclaimer of warranty; keep intact all the
|
|---|
| 1398 | notices that refer to this License and to the absence of any warranty;
|
|---|
| 1399 | and give any other recipients of the Program a copy of this License
|
|---|
| 1400 | along with the Program.
|
|---|
| 1401 |
|
|---|
| 1402 | You may charge a fee for the physical act of transferring a copy, and
|
|---|
| 1403 | you may at your option offer warranty protection in exchange for a fee.
|
|---|
| 1404 |
|
|---|
| 1405 | @item
|
|---|
| 1406 | You may modify your copy or copies of the Program or any portion
|
|---|
| 1407 | of it, thus forming a work based on the Program, and copy and
|
|---|
| 1408 | distribute such modifications or work under the terms of Section 1
|
|---|
| 1409 | above, provided that you also meet all of these conditions:
|
|---|
| 1410 |
|
|---|
| 1411 | @enumerate a
|
|---|
| 1412 | @item
|
|---|
| 1413 | You must cause the modified files to carry prominent notices
|
|---|
| 1414 | stating that you changed the files and the date of any change.
|
|---|
| 1415 |
|
|---|
| 1416 | @item
|
|---|
| 1417 | You must cause any work that you distribute or publish, that in
|
|---|
| 1418 | whole or in part contains or is derived from the Program or any
|
|---|
| 1419 | part thereof, to be licensed as a whole at no charge to all third
|
|---|
| 1420 | parties under the terms of this License.
|
|---|
| 1421 |
|
|---|
| 1422 | @item
|
|---|
| 1423 | If the modified program normally reads commands interactively
|
|---|
| 1424 | when run, you must cause it, when started running for such
|
|---|
| 1425 | interactive use in the most ordinary way, to print or display an
|
|---|
| 1426 | announcement including an appropriate copyright notice and a
|
|---|
| 1427 | notice that there is no warranty (or else, saying that you provide
|
|---|
| 1428 | a warranty) and that users may redistribute the program under
|
|---|
| 1429 | these conditions, and telling the user how to view a copy of this
|
|---|
| 1430 | License. (Exception: if the Program itself is interactive but
|
|---|
| 1431 | does not normally print such an announcement, your work based on
|
|---|
| 1432 | the Program is not required to print an announcement.)
|
|---|
| 1433 | @end enumerate
|
|---|
| 1434 |
|
|---|
| 1435 | These requirements apply to the modified work as a whole. If
|
|---|
| 1436 | identifiable sections of that work are not derived from the Program,
|
|---|
| 1437 | and can be reasonably considered independent and separate works in
|
|---|
| 1438 | themselves, then this License, and its terms, do not apply to those
|
|---|
| 1439 | sections when you distribute them as separate works. But when you
|
|---|
| 1440 | distribute the same sections as part of a whole which is a work based
|
|---|
| 1441 | on the Program, the distribution of the whole must be on the terms of
|
|---|
| 1442 | this License, whose permissions for other licensees extend to the
|
|---|
| 1443 | entire whole, and thus to each and every part regardless of who wrote it.
|
|---|
| 1444 |
|
|---|
| 1445 | Thus, it is not the intent of this section to claim rights or contest
|
|---|
| 1446 | your rights to work written entirely by you; rather, the intent is to
|
|---|
| 1447 | exercise the right to control the distribution of derivative or
|
|---|
| 1448 | collective works based on the Program.
|
|---|
| 1449 |
|
|---|
| 1450 | In addition, mere aggregation of another work not based on the Program
|
|---|
| 1451 | with the Program (or with a work based on the Program) on a volume of
|
|---|
| 1452 | a storage or distribution medium does not bring the other work under
|
|---|
| 1453 | the scope of this License.
|
|---|
| 1454 |
|
|---|
| 1455 | @item
|
|---|
| 1456 | You may copy and distribute the Program (or a work based on it,
|
|---|
| 1457 | under Section 2) in object code or executable form under the terms of
|
|---|
| 1458 | Sections 1 and 2 above provided that you also do one of the following:
|
|---|
| 1459 |
|
|---|
| 1460 | @enumerate a
|
|---|
| 1461 | @item
|
|---|
| 1462 | Accompany it with the complete corresponding machine-readable
|
|---|
| 1463 | source code, which must be distributed under the terms of Sections
|
|---|
| 1464 | 1 and 2 above on a medium customarily used for software interchange; or,
|
|---|
| 1465 |
|
|---|
| 1466 | @item
|
|---|
| 1467 | Accompany it with a written offer, valid for at least three
|
|---|
| 1468 | years, to give any third party, for a charge no more than your
|
|---|
| 1469 | cost of physically performing source distribution, a complete
|
|---|
| 1470 | machine-readable copy of the corresponding source code, to be
|
|---|
| 1471 | distributed under the terms of Sections 1 and 2 above on a medium
|
|---|
| 1472 | customarily used for software interchange; or,
|
|---|
| 1473 |
|
|---|
| 1474 | @item
|
|---|
| 1475 | Accompany it with the information you received as to the offer
|
|---|
| 1476 | to distribute corresponding source code. (This alternative is
|
|---|
| 1477 | allowed only for noncommercial distribution and only if you
|
|---|
| 1478 | received the program in object code or executable form with such
|
|---|
| 1479 | an offer, in accord with Subsection b above.)
|
|---|
| 1480 | @end enumerate
|
|---|
| 1481 |
|
|---|
| 1482 | The source code for a work means the preferred form of the work for
|
|---|
| 1483 | making modifications to it. For an executable work, complete source
|
|---|
| 1484 | code means all the source code for all modules it contains, plus any
|
|---|
| 1485 | associated interface definition files, plus the scripts used to
|
|---|
| 1486 | control compilation and installation of the executable. However, as a
|
|---|
| 1487 | special exception, the source code distributed need not include
|
|---|
| 1488 | anything that is normally distributed (in either source or binary
|
|---|
| 1489 | form) with the major components (compiler, kernel, and so on) of the
|
|---|
| 1490 | operating system on which the executable runs, unless that component
|
|---|
| 1491 | itself accompanies the executable.
|
|---|
| 1492 |
|
|---|
| 1493 | If distribution of executable or object code is made by offering
|
|---|
| 1494 | access to copy from a designated place, then offering equivalent
|
|---|
| 1495 | access to copy the source code from the same place counts as
|
|---|
| 1496 | distribution of the source code, even though third parties are not
|
|---|
| 1497 | compelled to copy the source along with the object code.
|
|---|
| 1498 |
|
|---|
| 1499 | @item
|
|---|
| 1500 | You may not copy, modify, sublicense, or distribute the Program
|
|---|
| 1501 | except as expressly provided under this License. Any attempt
|
|---|
| 1502 | otherwise to copy, modify, sublicense or distribute the Program is
|
|---|
| 1503 | void, and will automatically terminate your rights under this License.
|
|---|
| 1504 | However, parties who have received copies, or rights, from you under
|
|---|
| 1505 | this License will not have their licenses terminated so long as such
|
|---|
| 1506 | parties remain in full compliance.
|
|---|
| 1507 |
|
|---|
| 1508 | @item
|
|---|
| 1509 | You are not required to accept this License, since you have not
|
|---|
| 1510 | signed it. However, nothing else grants you permission to modify or
|
|---|
| 1511 | distribute the Program or its derivative works. These actions are
|
|---|
| 1512 | prohibited by law if you do not accept this License. Therefore, by
|
|---|
| 1513 | modifying or distributing the Program (or any work based on the
|
|---|
| 1514 | Program), you indicate your acceptance of this License to do so, and
|
|---|
| 1515 | all its terms and conditions for copying, distributing or modifying
|
|---|
| 1516 | the Program or works based on it.
|
|---|
| 1517 |
|
|---|
| 1518 | @item
|
|---|
| 1519 | Each time you redistribute the Program (or any work based on the
|
|---|
| 1520 | Program), the recipient automatically receives a license from the
|
|---|
| 1521 | original licensor to copy, distribute or modify the Program subject to
|
|---|
| 1522 | these terms and conditions. You may not impose any further
|
|---|
| 1523 | restrictions on the recipients' exercise of the rights granted herein.
|
|---|
| 1524 | You are not responsible for enforcing compliance by third parties to
|
|---|
| 1525 | this License.
|
|---|
| 1526 |
|
|---|
| 1527 | @item
|
|---|
| 1528 | If, as a consequence of a court judgment or allegation of patent
|
|---|
| 1529 | infringement or for any other reason (not limited to patent issues),
|
|---|
| 1530 | conditions are imposed on you (whether by court order, agreement or
|
|---|
| 1531 | otherwise) that contradict the conditions of this License, they do not
|
|---|
| 1532 | excuse you from the conditions of this License. If you cannot
|
|---|
| 1533 | distribute so as to satisfy simultaneously your obligations under this
|
|---|
| 1534 | License and any other pertinent obligations, then as a consequence you
|
|---|
| 1535 | may not distribute the Program at all. For example, if a patent
|
|---|
| 1536 | license would not permit royalty-free redistribution of the Program by
|
|---|
| 1537 | all those who receive copies directly or indirectly through you, then
|
|---|
| 1538 | the only way you could satisfy both it and this License would be to
|
|---|
| 1539 | refrain entirely from distribution of the Program.
|
|---|
| 1540 |
|
|---|
| 1541 | If any portion of this section is held invalid or unenforceable under
|
|---|
| 1542 | any particular circumstance, the balance of the section is intended to
|
|---|
| 1543 | apply and the section as a whole is intended to apply in other
|
|---|
| 1544 | circumstances.
|
|---|
| 1545 |
|
|---|
| 1546 | It is not the purpose of this section to induce you to infringe any
|
|---|
| 1547 | patents or other property right claims or to contest validity of any
|
|---|
| 1548 | such claims; this section has the sole purpose of protecting the
|
|---|
| 1549 | integrity of the free software distribution system, which is
|
|---|
| 1550 | implemented by public license practices. Many people have made
|
|---|
| 1551 | generous contributions to the wide range of software distributed
|
|---|
| 1552 | through that system in reliance on consistent application of that
|
|---|
| 1553 | system; it is up to the author/donor to decide if he or she is willing
|
|---|
| 1554 | to distribute software through any other system and a licensee cannot
|
|---|
| 1555 | impose that choice.
|
|---|
| 1556 |
|
|---|
| 1557 | This section is intended to make thoroughly clear what is believed to
|
|---|
| 1558 | be a consequence of the rest of this License.
|
|---|
| 1559 |
|
|---|
| 1560 | @item
|
|---|
| 1561 | If the distribution and/or use of the Program is restricted in
|
|---|
| 1562 | certain countries either by patents or by copyrighted interfaces, the
|
|---|
| 1563 | original copyright holder who places the Program under this License
|
|---|
| 1564 | may add an explicit geographical distribution limitation excluding
|
|---|
| 1565 | those countries, so that distribution is permitted only in or among
|
|---|
| 1566 | countries not thus excluded. In such case, this License incorporates
|
|---|
| 1567 | the limitation as if written in the body of this License.
|
|---|
| 1568 |
|
|---|
| 1569 | @item
|
|---|
| 1570 | The Free Software Foundation may publish revised and/or new versions
|
|---|
| 1571 | of the General Public License from time to time. Such new versions will
|
|---|
| 1572 | be similar in spirit to the present version, but may differ in detail to
|
|---|
| 1573 | address new problems or concerns.
|
|---|
| 1574 |
|
|---|
| 1575 | Each version is given a distinguishing version number. If the Program
|
|---|
| 1576 | specifies a version number of this License which applies to it and ``any
|
|---|
| 1577 | later version'', you have the option of following the terms and conditions
|
|---|
| 1578 | either of that version or of any later version published by the Free
|
|---|
| 1579 | Software Foundation. If the Program does not specify a version number of
|
|---|
| 1580 | this License, you may choose any version ever published by the Free Software
|
|---|
| 1581 | Foundation.
|
|---|
| 1582 |
|
|---|
| 1583 | @item
|
|---|
| 1584 | If you wish to incorporate parts of the Program into other free
|
|---|
| 1585 | programs whose distribution conditions are different, write to the author
|
|---|
| 1586 | to ask for permission. For software which is copyrighted by the Free
|
|---|
| 1587 | Software Foundation, write to the Free Software Foundation; we sometimes
|
|---|
| 1588 | make exceptions for this. Our decision will be guided by the two goals
|
|---|
| 1589 | of preserving the free status of all derivatives of our free software and
|
|---|
| 1590 | of promoting the sharing and reuse of software generally.
|
|---|
| 1591 |
|
|---|
| 1592 | @iftex
|
|---|
| 1593 | @heading NO WARRANTY
|
|---|
| 1594 | @end iftex
|
|---|
| 1595 | @ifinfo
|
|---|
| 1596 | @center NO WARRANTY
|
|---|
| 1597 | @end ifinfo
|
|---|
| 1598 | @cindex no warranty
|
|---|
| 1599 |
|
|---|
| 1600 | @item
|
|---|
| 1601 | BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|---|
| 1602 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|---|
| 1603 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|---|
| 1604 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|---|
| 1605 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|---|
| 1606 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|---|
| 1607 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|---|
| 1608 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|---|
| 1609 | REPAIR OR CORRECTION.
|
|---|
| 1610 |
|
|---|
| 1611 | @item
|
|---|
| 1612 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|---|
| 1613 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|---|
| 1614 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|---|
| 1615 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|---|
| 1616 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|---|
| 1617 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|---|
| 1618 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|---|
| 1619 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|---|
| 1620 | POSSIBILITY OF SUCH DAMAGES.
|
|---|
| 1621 | @end enumerate
|
|---|
| 1622 |
|
|---|
| 1623 | @iftex
|
|---|
| 1624 | @heading END OF TERMS AND CONDITIONS
|
|---|
| 1625 | @end iftex
|
|---|
| 1626 | @ifinfo
|
|---|
| 1627 | @center END OF TERMS AND CONDITIONS
|
|---|
| 1628 | @end ifinfo
|
|---|
| 1629 |
|
|---|
| 1630 | @page
|
|---|
| 1631 | @unnumberedsec How to Apply These Terms to Your New Programs
|
|---|
| 1632 |
|
|---|
| 1633 | If you develop a new program, and you want it to be of the greatest
|
|---|
| 1634 | possible use to the public, the best way to achieve this is to make it
|
|---|
| 1635 | free software which everyone can redistribute and change under these terms.
|
|---|
| 1636 |
|
|---|
| 1637 | To do so, attach the following notices to the program. It is safest
|
|---|
| 1638 | to attach them to the start of each source file to most effectively
|
|---|
| 1639 | convey the exclusion of warranty; and each file should have at least
|
|---|
| 1640 | the ``copyright'' line and a pointer to where the full notice is found.
|
|---|
| 1641 |
|
|---|
| 1642 | @smallexample
|
|---|
| 1643 | @var{one line to give the program's name and an idea of what it does.}
|
|---|
| 1644 | Copyright (C) 19@var{yy} @var{name of author}
|
|---|
| 1645 |
|
|---|
| 1646 | This program is free software; you can redistribute it and/or
|
|---|
| 1647 | modify it under the terms of the GNU General Public License
|
|---|
| 1648 | as published by the Free Software Foundation; either version 2
|
|---|
| 1649 | of the License, or (at your option) any later version.
|
|---|
| 1650 |
|
|---|
| 1651 | This program is distributed in the hope that it will be useful,
|
|---|
| 1652 | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|---|
| 1653 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|---|
| 1654 | GNU General Public License for more details.
|
|---|
| 1655 |
|
|---|
| 1656 | You should have received a copy of the GNU General Public License
|
|---|
| 1657 | along with this program; if not, write to the Free Software
|
|---|
| 1658 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|---|
| 1659 | @end smallexample
|
|---|
| 1660 |
|
|---|
| 1661 | Also add information on how to contact you by electronic and paper mail.
|
|---|
| 1662 |
|
|---|
| 1663 | If the program is interactive, make it output a short notice like this
|
|---|
| 1664 | when it starts in an interactive mode:
|
|---|
| 1665 |
|
|---|
| 1666 | @smallexample
|
|---|
| 1667 | Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
|
|---|
| 1668 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
|
|---|
| 1669 | type `show w'. This is free software, and you are welcome
|
|---|
| 1670 | to redistribute it under certain conditions; type `show c'
|
|---|
| 1671 | for details.
|
|---|
| 1672 | @end smallexample
|
|---|
| 1673 |
|
|---|
| 1674 | The hypothetical commands @samp{show w} and @samp{show c} should show
|
|---|
| 1675 | the appropriate parts of the General Public License. Of course, the
|
|---|
| 1676 | commands you use may be called something other than @samp{show w} and
|
|---|
| 1677 | @samp{show c}; they could even be mouse-clicks or menu items---whatever
|
|---|
| 1678 | suits your program.
|
|---|
| 1679 |
|
|---|
| 1680 | You should also get your employer (if you work as a programmer) or your
|
|---|
| 1681 | school, if any, to sign a ``copyright disclaimer'' for the program, if
|
|---|
| 1682 | necessary. Here is a sample; alter the names:
|
|---|
| 1683 |
|
|---|
| 1684 | @smallexample
|
|---|
| 1685 | @group
|
|---|
| 1686 | Yoyodyne, Inc., hereby disclaims all copyright
|
|---|
| 1687 | interest in the program `Gnomovision'
|
|---|
| 1688 | (which makes passes at compilers) written
|
|---|
| 1689 | by James Hacker.
|
|---|
| 1690 |
|
|---|
| 1691 | @var{signature of Ty Coon}, 1 April 1989
|
|---|
| 1692 | Ty Coon, President of Vice
|
|---|
| 1693 | @end group
|
|---|
| 1694 | @end smallexample
|
|---|
| 1695 |
|
|---|
| 1696 | This General Public License does not permit incorporating your program into
|
|---|
| 1697 | proprietary programs. If your program is a subroutine library, you may
|
|---|
| 1698 | consider it more useful to permit linking proprietary applications with the
|
|---|
| 1699 | library. If this is what you want to do, use the GNU Library General
|
|---|
| 1700 | Public License instead of this License.
|
|---|
| 1701 |
|
|---|
| 1702 | @node GNU Free Documentation License, Concept Index, GNU General Public License, Copying
|
|---|
| 1703 | @section GNU Free Documentation License
|
|---|
| 1704 | @center Version 1.1, March 2000
|
|---|
| 1705 | @cindex FDL, GNU Free Documentation License
|
|---|
| 1706 |
|
|---|
| 1707 | @display
|
|---|
| 1708 | Copyright (C) 2000 Free Software Foundation, Inc.
|
|---|
| 1709 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|---|
| 1710 |
|
|---|
| 1711 | Everyone is permitted to copy and distribute verbatim copies
|
|---|
| 1712 | of this license document, but changing it is not allowed.
|
|---|
| 1713 | @end display
|
|---|
| 1714 | @sp 1
|
|---|
| 1715 | @enumerate 0
|
|---|
| 1716 | @item
|
|---|
| 1717 | PREAMBLE
|
|---|
| 1718 |
|
|---|
| 1719 | The purpose of this License is to make a manual, textbook, or other
|
|---|
| 1720 | written document ``free'' in the sense of freedom: to assure everyone
|
|---|
| 1721 | the effective freedom to copy and redistribute it, with or without
|
|---|
| 1722 | modifying it, either commercially or noncommercially. Secondarily,
|
|---|
| 1723 | this License preserves for the author and publisher a way to get
|
|---|
| 1724 | credit for their work, while not being considered responsible for
|
|---|
| 1725 | modifications made by others.
|
|---|
| 1726 |
|
|---|
| 1727 | This License is a kind of ``copyleft'', which means that derivative
|
|---|
| 1728 | works of the document must themselves be free in the same sense. It
|
|---|
| 1729 | complements the GNU General Public License, which is a copyleft
|
|---|
| 1730 | license designed for free software.
|
|---|
| 1731 |
|
|---|
| 1732 | We have designed this License in order to use it for manuals for free
|
|---|
| 1733 | software, because free software needs free documentation: a free
|
|---|
| 1734 | program should come with manuals providing the same freedoms that the
|
|---|
| 1735 | software does. But this License is not limited to software manuals;
|
|---|
| 1736 | it can be used for any textual work, regardless of subject matter or
|
|---|
| 1737 | whether it is published as a printed book. We recommend this License
|
|---|
| 1738 | principally for works whose purpose is instruction or reference.
|
|---|
| 1739 |
|
|---|
| 1740 | @sp 1
|
|---|
| 1741 | @item
|
|---|
| 1742 | APPLICABILITY AND DEFINITIONS
|
|---|
| 1743 |
|
|---|
| 1744 | This License applies to any manual or other work that contains a
|
|---|
| 1745 | notice placed by the copyright holder saying it can be distributed
|
|---|
| 1746 | under the terms of this License. The ``Document'', below, refers to any
|
|---|
| 1747 | such manual or work. Any member of the public is a licensee, and is
|
|---|
| 1748 | addressed as ``you''.
|
|---|
| 1749 |
|
|---|
| 1750 | A ``Modified Version'' of the Document means any work containing the
|
|---|
| 1751 | Document or a portion of it, either copied verbatim, or with
|
|---|
| 1752 | modifications and/or translated into another language.
|
|---|
| 1753 |
|
|---|
| 1754 | A ``Secondary Section'' is a named appendix or a front-matter section of
|
|---|
| 1755 | the Document that deals exclusively with the relationship of the
|
|---|
| 1756 | publishers or authors of the Document to the Document's overall subject
|
|---|
| 1757 | (or to related matters) and contains nothing that could fall directly
|
|---|
| 1758 | within that overall subject. (For example, if the Document is in part a
|
|---|
| 1759 | textbook of mathematics, a Secondary Section may not explain any
|
|---|
| 1760 | mathematics.) The relationship could be a matter of historical
|
|---|
| 1761 | connection with the subject or with related matters, or of legal,
|
|---|
| 1762 | commercial, philosophical, ethical or political position regarding
|
|---|
| 1763 | them.
|
|---|
| 1764 |
|
|---|
| 1765 | The ``Invariant Sections'' are certain Secondary Sections whose titles
|
|---|
| 1766 | are designated, as being those of Invariant Sections, in the notice
|
|---|
| 1767 | that says that the Document is released under this License.
|
|---|
| 1768 |
|
|---|
| 1769 | The ``Cover Texts'' are certain short passages of text that are listed,
|
|---|
| 1770 | as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
|---|
| 1771 | the Document is released under this License.
|
|---|
| 1772 |
|
|---|
| 1773 | A ``Transparent'' copy of the Document means a machine-readable copy,
|
|---|
| 1774 | represented in a format whose specification is available to the
|
|---|
| 1775 | general public, whose contents can be viewed and edited directly and
|
|---|
| 1776 | straightforwardly with generic text editors or (for images composed of
|
|---|
| 1777 | pixels) generic paint programs or (for drawings) some widely available
|
|---|
| 1778 | drawing editor, and that is suitable for input to text formatters or
|
|---|
| 1779 | for automatic translation to a variety of formats suitable for input
|
|---|
| 1780 | to text formatters. A copy made in an otherwise Transparent file
|
|---|
| 1781 | format whose markup has been designed to thwart or discourage
|
|---|
| 1782 | subsequent modification by readers is not Transparent. A copy that is
|
|---|
| 1783 | not ``Transparent'' is called ``Opaque''.
|
|---|
| 1784 |
|
|---|
| 1785 | Examples of suitable formats for Transparent copies include plain
|
|---|
| 1786 | ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
|---|
| 1787 | or XML using a publicly available DTD, and standard-conforming simple
|
|---|
| 1788 | HTML designed for human modification. Opaque formats include
|
|---|
| 1789 | PostScript, PDF, proprietary formats that can be read and edited only
|
|---|
| 1790 | by proprietary word processors, SGML or XML for which the DTD and/or
|
|---|
| 1791 | processing tools are not generally available, and the
|
|---|
| 1792 | machine-generated HTML produced by some word processors for output
|
|---|
| 1793 | purposes only.
|
|---|
| 1794 |
|
|---|
| 1795 | The ``Title Page'' means, for a printed book, the title page itself,
|
|---|
| 1796 | plus such following pages as are needed to hold, legibly, the material
|
|---|
| 1797 | this License requires to appear in the title page. For works in
|
|---|
| 1798 | formats which do not have any title page as such, ``Title Page'' means
|
|---|
| 1799 | the text near the most prominent appearance of the work's title,
|
|---|
| 1800 | preceding the beginning of the body of the text.
|
|---|
| 1801 | @sp 1
|
|---|
| 1802 | @item
|
|---|
| 1803 | VERBATIM COPYING
|
|---|
| 1804 |
|
|---|
| 1805 | You may copy and distribute the Document in any medium, either
|
|---|
| 1806 | commercially or noncommercially, provided that this License, the
|
|---|
| 1807 | copyright notices, and the license notice saying this License applies
|
|---|
| 1808 | to the Document are reproduced in all copies, and that you add no other
|
|---|
| 1809 | conditions whatsoever to those of this License. You may not use
|
|---|
| 1810 | technical measures to obstruct or control the reading or further
|
|---|
| 1811 | copying of the copies you make or distribute. However, you may accept
|
|---|
| 1812 | compensation in exchange for copies. If you distribute a large enough
|
|---|
| 1813 | number of copies you must also follow the conditions in section 3.
|
|---|
| 1814 |
|
|---|
| 1815 | You may also lend copies, under the same conditions stated above, and
|
|---|
| 1816 | you may publicly display copies.
|
|---|
| 1817 | @sp 1
|
|---|
| 1818 | @item
|
|---|
| 1819 | COPYING IN QUANTITY
|
|---|
| 1820 |
|
|---|
| 1821 | If you publish printed copies of the Document numbering more than 100,
|
|---|
| 1822 | and the Document's license notice requires Cover Texts, you must enclose
|
|---|
| 1823 | the copies in covers that carry, clearly and legibly, all these Cover
|
|---|
| 1824 | Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
|---|
| 1825 | the back cover. Both covers must also clearly and legibly identify
|
|---|
| 1826 | you as the publisher of these copies. The front cover must present
|
|---|
| 1827 | the full title with all words of the title equally prominent and
|
|---|
| 1828 | visible. You may add other material on the covers in addition.
|
|---|
| 1829 | Copying with changes limited to the covers, as long as they preserve
|
|---|
| 1830 | the title of the Document and satisfy these conditions, can be treated
|
|---|
| 1831 | as verbatim copying in other respects.
|
|---|
| 1832 |
|
|---|
| 1833 | If the required texts for either cover are too voluminous to fit
|
|---|
| 1834 | legibly, you should put the first ones listed (as many as fit
|
|---|
| 1835 | reasonably) on the actual cover, and continue the rest onto adjacent
|
|---|
| 1836 | pages.
|
|---|
| 1837 |
|
|---|
| 1838 | If you publish or distribute Opaque copies of the Document numbering
|
|---|
| 1839 | more than 100, you must either include a machine-readable Transparent
|
|---|
| 1840 | copy along with each Opaque copy, or state in or with each Opaque copy
|
|---|
| 1841 | a publicly-accessible computer-network location containing a complete
|
|---|
| 1842 | Transparent copy of the Document, free of added material, which the
|
|---|
| 1843 | general network-using public has access to download anonymously at no
|
|---|
| 1844 | charge using public-standard network protocols. If you use the latter
|
|---|
| 1845 | option, you must take reasonably prudent steps, when you begin
|
|---|
| 1846 | distribution of Opaque copies in quantity, to ensure that this
|
|---|
| 1847 | Transparent copy will remain thus accessible at the stated location
|
|---|
| 1848 | until at least one year after the last time you distribute an Opaque
|
|---|
| 1849 | copy (directly or through your agents or retailers) of that edition to
|
|---|
| 1850 | the public.
|
|---|
| 1851 |
|
|---|
| 1852 | It is requested, but not required, that you contact the authors of the
|
|---|
| 1853 | Document well before redistributing any large number of copies, to give
|
|---|
| 1854 | them a chance to provide you with an updated version of the Document.
|
|---|
| 1855 | @sp 1
|
|---|
| 1856 | @item
|
|---|
| 1857 | MODIFICATIONS
|
|---|
| 1858 |
|
|---|
| 1859 | You may copy and distribute a Modified Version of the Document under
|
|---|
| 1860 | the conditions of sections 2 and 3 above, provided that you release
|
|---|
| 1861 | the Modified Version under precisely this License, with the Modified
|
|---|
| 1862 | Version filling the role of the Document, thus licensing distribution
|
|---|
| 1863 | and modification of the Modified Version to whoever possesses a copy
|
|---|
| 1864 | of it. In addition, you must do these things in the Modified Version:
|
|---|
| 1865 |
|
|---|
| 1866 | A. Use in the Title Page (and on the covers, if any) a title distinct
|
|---|
| 1867 | from that of the Document, and from those of previous versions
|
|---|
| 1868 | (which should, if there were any, be listed in the History section
|
|---|
| 1869 | of the Document). You may use the same title as a previous version
|
|---|
| 1870 | if the original publisher of that version gives permission.@*
|
|---|
| 1871 | B. List on the Title Page, as authors, one or more persons or entities
|
|---|
| 1872 | responsible for authorship of the modifications in the Modified
|
|---|
| 1873 | Version, together with at least five of the principal authors of the
|
|---|
| 1874 | Document (all of its principal authors, if it has less than five).@*
|
|---|
| 1875 | C. State on the Title page the name of the publisher of the
|
|---|
| 1876 | Modified Version, as the publisher.@*
|
|---|
| 1877 | D. Preserve all the copyright notices of the Document.@*
|
|---|
| 1878 | E. Add an appropriate copyright notice for your modifications
|
|---|
| 1879 | adjacent to the other copyright notices.@*
|
|---|
| 1880 | F. Include, immediately after the copyright notices, a license notice
|
|---|
| 1881 | giving the public permission to use the Modified Version under the
|
|---|
| 1882 | terms of this License, in the form shown in the Addendum below.@*
|
|---|
| 1883 | G. Preserve in that license notice the full lists of Invariant Sections
|
|---|
| 1884 | and required Cover Texts given in the Document's license notice.@*
|
|---|
| 1885 | H. Include an unaltered copy of this License.@*
|
|---|
| 1886 | I. Preserve the section entitled ``History'', and its title, and add to
|
|---|
| 1887 | it an item stating at least the title, year, new authors, and
|
|---|
| 1888 | publisher of the Modified Version as given on the Title Page. If
|
|---|
| 1889 | there is no section entitled ``History'' in the Document, create one
|
|---|
| 1890 | stating the title, year, authors, and publisher of the Document as
|
|---|
| 1891 | given on its Title Page, then add an item describing the Modified
|
|---|
| 1892 | Version as stated in the previous sentence.@*
|
|---|
| 1893 | J. Preserve the network location, if any, given in the Document for
|
|---|
| 1894 | public access to a Transparent copy of the Document, and likewise
|
|---|
| 1895 | the network locations given in the Document for previous versions
|
|---|
| 1896 | it was based on. These may be placed in the ``History'' section.
|
|---|
| 1897 | You may omit a network location for a work that was published at
|
|---|
| 1898 | least four years before the Document itself, or if the original
|
|---|
| 1899 | publisher of the version it refers to gives permission.@*
|
|---|
| 1900 | K. In any section entitled ``Acknowledgements'' or ``Dedications'',
|
|---|
| 1901 | preserve the section's title, and preserve in the section all the
|
|---|
| 1902 | substance and tone of each of the contributor acknowledgements
|
|---|
| 1903 | and/or dedications given therein.@*
|
|---|
| 1904 | L. Preserve all the Invariant Sections of the Document,
|
|---|
| 1905 | unaltered in their text and in their titles. Section numbers
|
|---|
| 1906 | or the equivalent are not considered part of the section titles.@*
|
|---|
| 1907 | M. Delete any section entitled ``Endorsements''. Such a section
|
|---|
| 1908 | may not be included in the Modified Version.@*
|
|---|
| 1909 | N. Do not retitle any existing section as ``Endorsements''
|
|---|
| 1910 | or to conflict in title with any Invariant Section.@*
|
|---|
| 1911 | @sp 1
|
|---|
| 1912 | If the Modified Version includes new front-matter sections or
|
|---|
| 1913 | appendices that qualify as Secondary Sections and contain no material
|
|---|
| 1914 | copied from the Document, you may at your option designate some or all
|
|---|
| 1915 | of these sections as invariant. To do this, add their titles to the
|
|---|
| 1916 | list of Invariant Sections in the Modified Version's license notice.
|
|---|
| 1917 | These titles must be distinct from any other section titles.
|
|---|
| 1918 |
|
|---|
| 1919 | You may add a section entitled ``Endorsements'', provided it contains
|
|---|
| 1920 | nothing but endorsements of your Modified Version by various
|
|---|
| 1921 | parties--for example, statements of peer review or that the text has
|
|---|
| 1922 | been approved by an organization as the authoritative definition of a
|
|---|
| 1923 | standard.
|
|---|
| 1924 |
|
|---|
| 1925 | You may add a passage of up to five words as a Front-Cover Text, and a
|
|---|
| 1926 | passage of up to 25 words as a Back-Cover Text, to the end of the list
|
|---|
| 1927 | of Cover Texts in the Modified Version. Only one passage of
|
|---|
| 1928 | Front-Cover Text and one of Back-Cover Text may be added by (or
|
|---|
| 1929 | through arrangements made by) any one entity. If the Document already
|
|---|
| 1930 | includes a cover text for the same cover, previously added by you or
|
|---|
| 1931 | by arrangement made by the same entity you are acting on behalf of,
|
|---|
| 1932 | you may not add another; but you may replace the old one, on explicit
|
|---|
| 1933 | permission from the previous publisher that added the old one.
|
|---|
| 1934 |
|
|---|
| 1935 | The author(s) and publisher(s) of the Document do not by this License
|
|---|
| 1936 | give permission to use their names for publicity for or to assert or
|
|---|
| 1937 | imply endorsement of any Modified Version.
|
|---|
| 1938 | @sp 1
|
|---|
| 1939 | @item
|
|---|
| 1940 | COMBINING DOCUMENTS
|
|---|
| 1941 |
|
|---|
| 1942 | You may combine the Document with other documents released under this
|
|---|
| 1943 | License, under the terms defined in section 4 above for modified
|
|---|
| 1944 | versions, provided that you include in the combination all of the
|
|---|
| 1945 | Invariant Sections of all of the original documents, unmodified, and
|
|---|
| 1946 | list them all as Invariant Sections of your combined work in its
|
|---|
| 1947 | license notice.
|
|---|
| 1948 |
|
|---|
| 1949 | The combined work need only contain one copy of this License, and
|
|---|
| 1950 | multiple identical Invariant Sections may be replaced with a single
|
|---|
| 1951 | copy. If there are multiple Invariant Sections with the same name but
|
|---|
| 1952 | different contents, make the title of each such section unique by
|
|---|
| 1953 | adding at the end of it, in parentheses, the name of the original
|
|---|
| 1954 | author or publisher of that section if known, or else a unique number.
|
|---|
| 1955 | Make the same adjustment to the section titles in the list of
|
|---|
| 1956 | Invariant Sections in the license notice of the combined work.
|
|---|
| 1957 |
|
|---|
| 1958 | In the combination, you must combine any sections entitled ``History''
|
|---|
| 1959 | in the various original documents, forming one section entitled
|
|---|
| 1960 | ``History''; likewise combine any sections entitled ``Acknowledgements'',
|
|---|
| 1961 | and any sections entitled ``Dedications''. You must delete all sections
|
|---|
| 1962 | entitled ``Endorsements.''
|
|---|
| 1963 | @sp 1
|
|---|
| 1964 | @item
|
|---|
| 1965 | COLLECTIONS OF DOCUMENTS
|
|---|
| 1966 |
|
|---|
| 1967 | You may make a collection consisting of the Document and other documents
|
|---|
| 1968 | released under this License, and replace the individual copies of this
|
|---|
| 1969 | License in the various documents with a single copy that is included in
|
|---|
| 1970 | the collection, provided that you follow the rules of this License for
|
|---|
| 1971 | verbatim copying of each of the documents in all other respects.
|
|---|
| 1972 |
|
|---|
| 1973 | You may extract a single document from such a collection, and distribute
|
|---|
| 1974 | it individually under this License, provided you insert a copy of this
|
|---|
| 1975 | License into the extracted document, and follow this License in all
|
|---|
| 1976 | other respects regarding verbatim copying of that document.
|
|---|
| 1977 | @sp 1
|
|---|
| 1978 | @item
|
|---|
| 1979 | AGGREGATION WITH INDEPENDENT WORKS
|
|---|
| 1980 |
|
|---|
| 1981 | A compilation of the Document or its derivatives with other separate
|
|---|
| 1982 | and independent documents or works, in or on a volume of a storage or
|
|---|
| 1983 | distribution medium, does not as a whole count as a Modified Version
|
|---|
| 1984 | of the Document, provided no compilation copyright is claimed for the
|
|---|
| 1985 | compilation. Such a compilation is called an ``aggregate'', and this
|
|---|
| 1986 | License does not apply to the other self-contained works thus compiled
|
|---|
| 1987 | with the Document, on account of their being thus compiled, if they
|
|---|
| 1988 | are not themselves derivative works of the Document.
|
|---|
| 1989 |
|
|---|
| 1990 | If the Cover Text requirement of section 3 is applicable to these
|
|---|
| 1991 | copies of the Document, then if the Document is less than one quarter
|
|---|
| 1992 | of the entire aggregate, the Document's Cover Texts may be placed on
|
|---|
| 1993 | covers that surround only the Document within the aggregate.
|
|---|
| 1994 | Otherwise they must appear on covers around the whole aggregate.
|
|---|
| 1995 | @sp 1
|
|---|
| 1996 | @item
|
|---|
| 1997 | TRANSLATION
|
|---|
| 1998 |
|
|---|
| 1999 | Translation is considered a kind of modification, so you may
|
|---|
| 2000 | distribute translations of the Document under the terms of section 4.
|
|---|
| 2001 | Replacing Invariant Sections with translations requires special
|
|---|
| 2002 | permission from their copyright holders, but you may include
|
|---|
| 2003 | translations of some or all Invariant Sections in addition to the
|
|---|
| 2004 | original versions of these Invariant Sections. You may include a
|
|---|
| 2005 | translation of this License provided that you also include the
|
|---|
| 2006 | original English version of this License. In case of a disagreement
|
|---|
| 2007 | between the translation and the original English version of this
|
|---|
| 2008 | License, the original English version will prevail.
|
|---|
| 2009 | @sp 1
|
|---|
| 2010 | @item
|
|---|
| 2011 | TERMINATION
|
|---|
| 2012 |
|
|---|
| 2013 | You may not copy, modify, sublicense, or distribute the Document except
|
|---|
| 2014 | as expressly provided for under this License. Any other attempt to
|
|---|
| 2015 | copy, modify, sublicense or distribute the Document is void, and will
|
|---|
| 2016 | automatically terminate your rights under this License. However,
|
|---|
| 2017 | parties who have received copies, or rights, from you under this
|
|---|
| 2018 | License will not have their licenses terminated so long as such
|
|---|
| 2019 | parties remain in full compliance.
|
|---|
| 2020 | @sp 1
|
|---|
| 2021 | @item
|
|---|
| 2022 | FUTURE REVISIONS OF THIS LICENSE
|
|---|
| 2023 |
|
|---|
| 2024 | The Free Software Foundation may publish new, revised versions
|
|---|
| 2025 | of the GNU Free Documentation License from time to time. Such new
|
|---|
| 2026 | versions will be similar in spirit to the present version, but may
|
|---|
| 2027 | differ in detail to address new problems or concerns. See
|
|---|
| 2028 | http://www.gnu.org/copyleft/.
|
|---|
| 2029 |
|
|---|
| 2030 | Each version of the License is given a distinguishing version number.
|
|---|
| 2031 | If the Document specifies that a particular numbered version of this
|
|---|
| 2032 | License ``or any later version'' applies to it, you have the option of
|
|---|
| 2033 | following the terms and conditions either of that specified version or
|
|---|
| 2034 | of any later version that has been published (not as a draft) by the
|
|---|
| 2035 | Free Software Foundation. If the Document does not specify a version
|
|---|
| 2036 | number of this License, you may choose any version ever published (not
|
|---|
| 2037 | as a draft) by the Free Software Foundation.
|
|---|
| 2038 |
|
|---|
| 2039 | @end enumerate
|
|---|
| 2040 |
|
|---|
| 2041 | @unnumberedsec ADDENDUM: How to use this License for your documents
|
|---|
| 2042 |
|
|---|
| 2043 | To use this License in a document you have written, include a copy of
|
|---|
| 2044 | the License in the document and put the following copyright and
|
|---|
| 2045 | license notices just after the title page:
|
|---|
| 2046 |
|
|---|
| 2047 | @smallexample
|
|---|
| 2048 | @group
|
|---|
| 2049 |
|
|---|
| 2050 | Copyright (C) @var{year} @var{your name}.
|
|---|
| 2051 | Permission is granted to copy, distribute and/or modify this document
|
|---|
| 2052 | under the terms of the GNU Free Documentation License, Version 1.1
|
|---|
| 2053 | or any later version published by the Free Software Foundation;
|
|---|
| 2054 | with the Invariant Sections being @var{list their titles}, with the
|
|---|
| 2055 | Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
|
|---|
| 2056 | A copy of the license is included in the section entitled ``GNU
|
|---|
| 2057 | Free Documentation License''.
|
|---|
| 2058 | @end group
|
|---|
| 2059 | @end smallexample
|
|---|
| 2060 | If you have no Invariant Sections, write ``with no Invariant Sections''
|
|---|
| 2061 | instead of saying which ones are invariant. If you have no
|
|---|
| 2062 | Front-Cover Texts, write ``no Front-Cover Texts'' instead of
|
|---|
| 2063 | ``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
|
|---|
| 2064 |
|
|---|
| 2065 | If your document contains nontrivial examples of program code, we
|
|---|
| 2066 | recommend releasing these examples in parallel under your choice of
|
|---|
| 2067 | free software license, such as the GNU General Public License,
|
|---|
| 2068 | to permit their use in free software.
|
|---|
| 2069 |
|
|---|
| 2070 | @page
|
|---|
| 2071 | @node Concept Index, Index, GNU Free Documentation License, Top
|
|---|
| 2072 | @unnumbered Concept Index
|
|---|
| 2073 |
|
|---|
| 2074 | This is a general index of all issues discussed in this manual, with the
|
|---|
| 2075 | exception of the @command{grep} commands and command-line options.
|
|---|
| 2076 |
|
|---|
| 2077 | @printindex cp
|
|---|
| 2078 |
|
|---|
| 2079 | @page
|
|---|
| 2080 | @node Index,, Concept Index, Top
|
|---|
| 2081 | @unnumbered Index
|
|---|
| 2082 |
|
|---|
| 2083 | This is an alphabetical list of all @command{grep} commands, command-line
|
|---|
| 2084 | options, and environment variables.
|
|---|
| 2085 |
|
|---|
| 2086 | @printindex fn
|
|---|
| 2087 |
|
|---|
| 2088 | @contents
|
|---|
| 2089 | @bye
|
|---|