summaryrefslogtreecommitdiff
path: root/doc/pcregrep.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/pcregrep.txt')
-rw-r--r--doc/pcregrep.txt173
1 files changed, 138 insertions, 35 deletions
diff --git a/doc/pcregrep.txt b/doc/pcregrep.txt
index 1dca003..c2374e1 100644
--- a/doc/pcregrep.txt
+++ b/doc/pcregrep.txt
@@ -6,7 +6,7 @@ NAME
pcregrep - a grep with Perl-compatible regular expressions.
SYNOPSIS
- pcregrep [-Vcfhilnrsuvx] [long options] [pattern] [file1 file2 ...]
+ pcregrep [options] [long options] [pattern] [file1 file2 ...]
DESCRIPTION
@@ -20,61 +20,139 @@ DESCRIPTION
A pattern must be specified on the command line unless the -f option is
used (see below).
- If no files are specified, pcregrep reads the standard input. By
- default, each line that matches the pattern is copied to the standard
- output, and if there is more than one file, the file name is printed
- before each line of output. However, there are options that can change
- how pcregrep behaves.
+ If no files are specified, pcregrep reads the standard input. The stan-
+ dard input can also be referenced by a name consisting of a single
+ hyphen. For example:
- Lines are limited to BUFSIZ characters. BUFSIZ is defined in <stdio.h>.
- The newline character is removed from the end of each line before it is
- matched against the pattern.
+ pcregrep some-pattern /file1 - /file3
+ By default, each line that matches the pattern is copied to the stan-
+ dard output, and if there is more than one file, the file name is
+ printed before each line of output. However, there are options that can
+ change how pcregrep behaves. In particular, the -M option makes it pos-
+ sible to search for patterns that span line boundaries.
+
+ Patterns are limited to 8K or BUFSIZ characters, whichever is the
+ greater. BUFSIZ is defined in <stdio.h>.
-OPTIONS
+OPTIONS
- -V Write the version number of the PCRE library being used to
- the standard error stream.
+ -- This terminate the list of options. It is useful if the next
+ item on the command line starts with a hyphen, but is not an
+ option.
+
+ -A number Print number lines of context after each matching line. If
+ file names and/or line numbers are being printed, a hyphen
+ separator is used instead of a colon for the context lines. A
+ line containing "--" is printed between each group of lines,
+ unless they are in fact contiguous in the input file. The
+ value of number is expected to be relatively small. However,
+ pcregrep guarantees to have up to 8K of following text avail-
+ able for context printing.
+
+ -B number Print number lines of context before each matching line. If
+ file names and/or line numbers are being printed, a hyphen
+ separator is used instead of a colon for the context lines. A
+ line containing "--" is printed between each group of lines,
+ unless they are in fact contiguous in the input file. The
+ value of number is expected to be relatively small. However,
+ pcregrep guarantees to have up to 8K of preceding text avail-
+ able for context printing.
+
+ -C number Print number lines of context both before and after each
+ matching line. This is equivalent to setting both -A and -B
+ to the same value.
-c Do not print individual lines; instead just print a count of
the number of lines that would otherwise have been printed.
If several files are given, a count is printed for each of
them.
+ --exclude=pattern
+ When pcregrep is searching the files in a directory as a con-
+ sequence of the -r (recursive search) option, any files whose
+ names match the pattern are excluded. The pattern is a PCRE
+ regular expression. If a file name matches both --include and
+ --exclude, it is excluded. There is no short form for this
+ option.
+
-ffilename
- Read a number of patterns from the file, one per line, and
- match all of them against each line of input. A line is out-
- put if any of the patterns match it. When -f is used, no
- pattern is taken from the command line; all arguments are
- treated as file names. There is a maximum of 100 patterns.
+ Read a number of patterns from the file, one per line, and
+ match all of them against each line of input. A line is out-
+ put if any of the patterns match it. When -f is used, no
+ pattern is taken from the command line; all arguments are
+ treated as file names. There is a maximum of 100 patterns.
Trailing white space is removed, and blank lines are ignored.
- An empty file contains no patterns and therefore matches
+ An empty file contains no patterns and therefore matches
nothing.
-h Suppress printing of filenames when searching multiple files.
-i Ignore upper/lower case distinctions during comparisons.
- -l Instead of printing lines from the files, just print the
- names of the files containing lines that would have been
- printed. Each file name is printed once, on a separate line.
+ --include=pattern
+ When pcregrep is searching the files in a directory as a con-
+ sequence of the -r (recursive search) option, only files
+ whose names match the pattern are included. The pattern is a
+ PCRE regular expression. If a file name matches both
+ --include and --exclude, it is excluded. There is no short
+ form for this option.
+
+ -L Instead of printing lines from the files, just print the
+ names of the files that do not contain any lines that would
+ have been printed. Each file name is printed once, on a sepa-
+ rate line.
+
+ -l Instead of printing lines from the files, just print the
+ names of the files containing lines that would have been
+ printed. Each file name is printed once, on a separate line.
+
+ --label=name
+ This option supplies a name to be used for the standard input
+ when file names are being printed. If not supplied, "(stan-
+ dard input)" is used. There is no short form for this option.
+
+ -M Allow patterns to match more than one line. When this option
+ is given, patterns may usefully contain literal newline char-
+ acters and internal occurrences of ^ and $ characters. The
+ output for any one match may consist of more than one line.
+ When this option is set, the PCRE library is called in "mul-
+ tiline" mode. There is a limit to the number of lines that
+ can be matched, imposed by the way that pcregrep buffers the
+ input file as it scans it. However, pcregrep ensures that at
+ least 8K characters or the rest of the document (whichever is
+ the shorter) are available for forward matching, and simi-
+ larly the previous 8K characters (or all the previous charac-
+ ters, if fewer than 8K) are guaranteed to be available for
+ lookbehind assertions.
-n Precede each line by its line number in the file.
- -r If any file is a directory, recursively scan the files it
- contains. Without -r a directory is scanned as a normal file.
-
- -s Work silently, that is, display nothing except error mes-
- sages. The exit status indicates whether any matches were
+ -q Work quietly, that is, display nothing except error messages.
+ The exit status indicates whether or not any matches were
found.
+ -r If any given path is a directory, recursively scan the files
+ it contains, taking note of any --include and --exclude set-
+ tings. Without -r a directory is scanned as a normal file.
+
+ -s Suppress error messages about non-existent or unreadable
+ files. Such files are quietly skipped. However, the return
+ code is still 2, even if matches were found in other files.
+
-u Operate in UTF-8 mode. This option is available only if PCRE
has been compiled with UTF-8 support. Both the pattern and
each subject line must be valid strings of UTF-8 characters.
- -v Invert the sense of the match, so that lines which do not
- match the pattern are now the ones that are found.
+ -V Write the version numbers of pcregrep and the PCRE library
+ that is being used to the standard error stream.
+
+ -v Invert the sense of the match, so that lines which do not
+ match the pattern are the ones that are found.
+
+ -w Force the pattern to match only whole words. This is equiva-
+ lent to having \b at the start and end of the pattern.
-x Force the pattern to be anchored (it must start matching at
the beginning of the line) and in addition, require it to
@@ -88,12 +166,22 @@ LONG OPTIONS
Long forms of all the options are available, as in GNU grep. They are
shown in the following table:
+ -A --after-context
+ -B --before-context
+ -C --context
-c --count
+ --exclude (no short form)
+ -f --file
-h --no-filename
+ --help (no short form)
-i --ignore-case
+ --include (no short form)
+ -L --files-without-match
-l --files-with-matches
+ --label (no short form)
-n --line-number
-r --recursive
+ -q --quiet
-s --no-messages
-u --utf-8
-V --version
@@ -101,22 +189,37 @@ LONG OPTIONS
-x --line-regex
-x --line-regexp
- In addition, --file=filename is equivalent to -ffilename, and --help
- shows the list of options and then exits.
+
+OPTIONS WITH DATA
+
+ There are four different ways in which an option with data can be spec-
+ ified. If a short form option is used, the data may follow immedi-
+ ately, or in the next command line item. For example:
+
+ -f/some/file
+ -f /some/file
+
+ If a long form option is used, the data may appear in the same command
+ line item, separated by an = character, or it may appear in the next
+ command line item. For example:
+
+ --file=/some/file
+ --file /some/file
DIAGNOSTICS
Exit status is 0 if any matches were found, 1 if no matches were found,
- and 2 for syntax errors or inacessible files (even if matches were
- found).
+ and 2 for syntax errors and non-existent or inacessible files (even if
+ matches were found in other files). Using the -s option to suppress
+ error messages about inaccessble files does not affect the return code.
AUTHOR
- Philip Hazel <ph10@cam.ac.uk>
+ Philip Hazel
University Computing Service
Cambridge CB2 3QG, England.
-Last updated: 09 September 2004
-Copyright (c) 1997-2004 University of Cambridge.
+Last updated: 16 May 2005
+Copyright (c) 1997-2005 University of Cambridge.