513 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			513 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| PCREGREP(1)                                                        PCREGREP(1)
 | |
| 
 | |
| 
 | |
| NAME
 | |
|        pcregrep - a grep with Perl-compatible regular expressions.
 | |
| 
 | |
| 
 | |
| SYNOPSIS
 | |
|        pcregrep [options] [long options] [pattern] [path1 path2 ...]
 | |
| 
 | |
| 
 | |
| DESCRIPTION
 | |
| 
 | |
|        pcregrep  searches  files  for  character  patterns, in the same way as
 | |
|        other grep commands do, but it uses the PCRE regular expression library
 | |
|        to support patterns that are compatible with the regular expressions of
 | |
|        Perl 5. See pcrepattern(3) for a full description of syntax and  seman-
 | |
|        tics of the regular expressions that PCRE supports.
 | |
| 
 | |
|        Patterns,  whether  supplied on the command line or in a separate file,
 | |
|        are given without delimiters. For example:
 | |
| 
 | |
|          pcregrep Thursday /etc/motd
 | |
| 
 | |
|        If you attempt to use delimiters (for example, by surrounding a pattern
 | |
|        with  slashes,  as  is common in Perl scripts), they are interpreted as
 | |
|        part of the pattern. Quotes can of course be used to  delimit  patterns
 | |
|        on  the  command  line  because  they are interpreted by the shell, and
 | |
|        indeed they are required if a pattern contains  white  space  or  shell
 | |
|        metacharacters.
 | |
| 
 | |
|        The  first  argument that follows any option settings is treated as the
 | |
|        single pattern to be matched when neither -e nor -f is  present.   Con-
 | |
|        versely,  when  one  or  both of these options are used to specify pat-
 | |
|        terns, all arguments are treated as path names. At least one of -e, -f,
 | |
|        or an argument pattern must be provided.
 | |
| 
 | |
|        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:
 | |
| 
 | |
|          pcregrep some-pattern /file1 - /file3
 | |
| 
 | |
|        By  default, each line that matches a pattern is copied to the standard
 | |
|        output, and if there is more than one file, the file name is output  at
 | |
|        the start of each line, followed by a colon. However, there are options
 | |
|        that can change how pcregrep behaves.  In  particular,  the  -M  option
 | |
|        makes  it  possible  to  search for patterns that span line boundaries.
 | |
|        What defines a line  boundary  is  controlled  by  the  -N  (--newline)
 | |
|        option.
 | |
| 
 | |
|        Patterns  are  limited  to  8K  or  BUFSIZ characters, whichever is the
 | |
|        greater.  BUFSIZ is defined in <stdio.h>. When there is more  than  one
 | |
|        pattern (specified by the use of -e and/or -f), each pattern is applied
 | |
|        to each line in the order in which they are defined,  except  that  all
 | |
|        the -e patterns are tried before the -f patterns.
 | |
| 
 | |
|        By  default,  as soon as one pattern matches (or fails to match when -v
 | |
|        is used), no further patterns are considered. However, if --colour  (or
 | |
|        --color) is used to colour the matching substrings, or if --only-match-
 | |
|        ing, --file-offsets, or --line-offsets is used to output only the  part
 | |
|        of  the  line  that  matched (either shown literally, or as an offset),
 | |
|        scanning resumes immediately  following  the  match,  so  that  further
 | |
|        matches  on the same line can be found. If there are multiple patterns,
 | |
|        they are all tried on the remainder of the line, but patterns that fol-
 | |
|        low the one that matched are not tried on the earlier part of the line.
 | |
| 
 | |
|        This is the same behaviour as GNU grep, but it does mean that the order
 | |
|        in which multiple patterns are specified can affect the output when one
 | |
|        of the above options is used.
 | |
| 
 | |
|        Patterns  that can match an empty string are accepted, but empty string
 | |
|        matches are not recognized. An example is the pattern "(super)?(man)?",
 | |
|        in  which  all  components  are optional. This pattern finds all occur-
 | |
|        rences of both "super" and "man"; the output differs from matching with
 | |
|        "super|man" when only the matching substrings are being shown.
 | |
| 
 | |
|        If  the  LC_ALL  or LC_CTYPE environment variable is set, pcregrep uses
 | |
|        the value to set a locale when calling the PCRE library.  The  --locale
 | |
|        option can be used to override this.
 | |
| 
 | |
| 
 | |
| SUPPORT FOR COMPRESSED FILES
 | |
| 
 | |
|        It  is  possible  to compile pcregrep so that it uses libz or libbz2 to
 | |
|        read files whose names end in .gz or .bz2, respectively. You  can  find
 | |
|        out whether your binary has support for one or both of these file types
 | |
|        by running it with the --help option. If the appropriate support is not
 | |
|        present,  files are treated as plain text. The standard input is always
 | |
|        so treated.
 | |
| 
 | |
| 
 | |
| OPTIONS
 | |
| 
 | |
|        --        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. This allows for the processing of patterns and  file-
 | |
|                  names that start with hyphens.
 | |
| 
 | |
|        -A number, --after-context=number
 | |
|                  Output  number  lines of context after each matching line. If
 | |
|                  filenames and/or line numbers are being output, a hyphen sep-
 | |
|                  arator  is  used  instead of a colon for the context lines. A
 | |
|                  line containing "--" is output 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 output.
 | |
| 
 | |
|        -B number, --before-context=number
 | |
|                  Output number lines of context before each matching line.  If
 | |
|                  filenames and/or line numbers are being output, a hyphen sep-
 | |
|                  arator is used instead of a colon for the  context  lines.  A
 | |
|                  line  containing  "--" is output 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 output.
 | |
| 
 | |
|        -C number, --context=number
 | |
|                  Output  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, --count
 | |
|                  Do  not  output individual lines; instead just output a count
 | |
|                  of the number of lines that would otherwise have been output.
 | |
|                  If  several  files  are  given, a count is output for each of
 | |
|                  them. In this mode, the -A, -B, and -C options are ignored.
 | |
| 
 | |
|        --colour, --color
 | |
|                  If this option is given without any data, it is equivalent to
 | |
|                  "--colour=auto".   If  data  is required, it must be given in
 | |
|                  the same shell item, separated by an equals sign.
 | |
| 
 | |
|        --colour=value, --color=value
 | |
|                  This option specifies under what circumstances the parts of a
 | |
|                  line that matched a pattern should be coloured in the output.
 | |
|                  By default, the output is not coloured. The value  (which  is
 | |
|                  optional,  see above) may be "never", "always", or "auto". In
 | |
|                  the latter case, colouring happens only if the standard  out-
 | |
|                  put  is connected to a terminal. More resources are used when
 | |
|                  colouring is enabled, because pcregrep has to search for  all
 | |
|                  possible  matches in a line, not just one, in order to colour
 | |
|                  them all.
 | |
| 
 | |
|                  The colour that is used can be specified by setting the envi-
 | |
|                  ronment variable PCREGREP_COLOUR or PCREGREP_COLOR. The value
 | |
|                  of this variable should be a string of two numbers, separated
 | |
|                  by  a  semicolon.  They  are copied directly into the control
 | |
|                  string for setting colour  on  a  terminal,  so  it  is  your
 | |
|                  responsibility  to ensure that they make sense. If neither of
 | |
|                  the environment variables is  set,  the  default  is  "1;31",
 | |
|                  which gives red.
 | |
| 
 | |
|        -D action, --devices=action
 | |
|                  If  an  input  path  is  not  a  regular file or a directory,
 | |
|                  "action" specifies how it is to be  processed.  Valid  values
 | |
|                  are "read" (the default) or "skip" (silently skip the path).
 | |
| 
 | |
|        -d action, --directories=action
 | |
|                  If an input path is a directory, "action" specifies how it is
 | |
|                  to be processed.  Valid  values  are  "read"  (the  default),
 | |
|                  "recurse"  (equivalent to the -r option), or "skip" (silently
 | |
|                  skip the path). In the default case, directories are read  as
 | |
|                  if  they  were  ordinary files. In some operating systems the
 | |
|                  effect of reading a directory like this is an immediate  end-
 | |
|                  of-file.
 | |
| 
 | |
|        -e pattern, --regex=pattern, --regexp=pattern
 | |
|                  Specify a pattern to be matched. This option can be used mul-
 | |
|                  tiple times in order to specify several patterns. It can also
 | |
|                  be  used  as a way of specifying a single pattern that starts
 | |
|                  with a hyphen. When -e is used, no argument pattern is  taken
 | |
|                  from  the  command  line;  all  arguments are treated as file
 | |
|                  names. There is an overall maximum of 100 patterns. They  are
 | |
|                  applied  to  each line in the order in which they are defined
 | |
|                  until one matches (or fails to match if -v is used). If -f is
 | |
|                  used  with  -e,  the command line patterns are matched first,
 | |
|                  followed by the patterns from the file,  independent  of  the
 | |
|                  order  in which these options are specified. Note that multi-
 | |
|                  ple use of -e is not the same as a single pattern with alter-
 | |
|                  natives. For example, X|Y finds the first character in a line
 | |
|                  that is X or Y, whereas if the two patterns are  given  sepa-
 | |
|                  rately, pcregrep finds X if it is present, even if it follows
 | |
|                  Y in the line. It finds Y only if there is no X in the  line.
 | |
|                  This  really  matters  only  if  you are using -o to show the
 | |
|                  part(s) of the line that matched.
 | |
| 
 | |
|        --exclude=pattern
 | |
|                  When pcregrep is searching the files in a directory as a con-
 | |
|                  sequence  of  the  -r  (recursive search) option, any regular
 | |
|                  files whose names match the pattern are excluded. Subdirecto-
 | |
|                  ries  are  not  excluded  by  this  option; they are searched
 | |
|                  recursively, subject to the --exclude_dir  and  --include_dir
 | |
|                  options.  The  pattern  is  a PCRE regular expression, and is
 | |
|                  matched against the final component of the file name (not the
 | |
|                  entire  path).  If  a  file  name  matches both --include and
 | |
|                  --exclude, it is excluded.  There is no short form  for  this
 | |
|                  option.
 | |
| 
 | |
|        --exclude_dir=pattern
 | |
|                  When  pcregrep  is searching the contents of a directory as a
 | |
|                  consequence of the -r (recursive search) option,  any  subdi-
 | |
|                  rectories  whose  names match the pattern are excluded. (Note
 | |
|                  that the --exclude option does  not  affect  subdirectories.)
 | |
|                  The  pattern  is  a  PCRE  regular expression, and is matched
 | |
|                  against the final component  of  the  name  (not  the  entire
 | |
|                  path).  If a subdirectory name matches both --include_dir and
 | |
|                  --exclude_dir, it is excluded. There is  no  short  form  for
 | |
|                  this option.
 | |
| 
 | |
|        -F, --fixed-strings
 | |
|                  Interpret  each pattern as a list of fixed strings, separated
 | |
|                  by newlines, instead of  as  a  regular  expression.  The  -w
 | |
|                  (match  as  a  word) and -x (match whole line) options can be
 | |
|                  used with -F. They apply to each of the fixed strings. A line
 | |
|                  is selected if any of the fixed strings are found in it (sub-
 | |
|                  ject to -w or -x, if present).
 | |
| 
 | |
|        -f filename, --file=filename
 | |
|                  Read a number of patterns from the file, one  per  line,  and
 | |
|                  match  them against each line of input. A data line is output
 | |
|                  if any of the patterns match it. The filename can be given as
 | |
|                  "-" to refer to the standard input. When -f is used, patterns
 | |
|                  specified on the command line using -e may also  be  present;
 | |
|                  they are tested before the file's patterns. However, no other
 | |
|                  pattern is taken from the command  line;  all  arguments  are
 | |
|                  treated  as  file  names.  There is an overall maximum of 100
 | |
|                  patterns. Trailing white space is removed from each line, and
 | |
|                  blank  lines  are ignored. An empty file contains no patterns
 | |
|                  and therefore matches nothing. See also  the  comments  about
 | |
|                  multiple  patterns  versus a single pattern with alternatives
 | |
|                  in the description of -e above.
 | |
| 
 | |
|        --file-offsets
 | |
|                  Instead of showing lines or parts of lines that  match,  show
 | |
|                  each  match  as  an  offset  from the start of the file and a
 | |
|                  length, separated by a comma. In this  mode,  no  context  is
 | |
|                  shown.  That  is,  the -A, -B, and -C options are ignored. If
 | |
|                  there is more than one match in a line, each of them is shown
 | |
|                  separately.  This  option  is mutually exclusive with --line-
 | |
|                  offsets and --only-matching.
 | |
| 
 | |
|        -H, --with-filename
 | |
|                  Force the inclusion of the filename at the  start  of  output
 | |
|                  lines  when searching a single file. By default, the filename
 | |
|                  is not shown in this case. For matching lines,  the  filename
 | |
|                  is followed by a colon; for context lines, a hyphen separator
 | |
|                  is used. If a line number is also being  output,  it  follows
 | |
|                  the file name.
 | |
| 
 | |
|        -h, --no-filename
 | |
|                  Suppress  the output filenames when searching multiple files.
 | |
|                  By default, filenames  are  shown  when  multiple  files  are
 | |
|                  searched.  For  matching lines, the filename is followed by a
 | |
|                  colon; for context lines, a hyphen separator is used.   If  a
 | |
|                  line number is also being output, it follows the file name.
 | |
| 
 | |
|        --help    Output  a  help  message, giving brief details of the command
 | |
|                  options and file type support, and then exit.
 | |
| 
 | |
|        -i, --ignore-case
 | |
|                  Ignore upper/lower case distinctions during comparisons.
 | |
| 
 | |
|        --include=pattern
 | |
|                  When pcregrep is searching the files in a directory as a con-
 | |
|                  sequence of the -r (recursive search) option, only those reg-
 | |
|                  ular files whose names match the pattern are included. Subdi-
 | |
|                  rectories  are always included and searched recursively, sub-
 | |
|                  ject to the --include_dir and --exclude_dir options. The pat-
 | |
|                  tern is a PCRE regular expression, and is matched against the
 | |
|                  final component of the file name (not the entire path). If  a
 | |
|                  file  name  matches  both  --include  and  --exclude,  it  is
 | |
|                  excluded. There is no short form for this option.
 | |
| 
 | |
|        --include_dir=pattern
 | |
|                  When pcregrep is searching the contents of a directory  as  a
 | |
|                  consequence  of  the -r (recursive search) option, only those
 | |
|                  subdirectories whose names match the  pattern  are  included.
 | |
|                  (Note  that  the --include option does not affect subdirecto-
 | |
|                  ries.) The pattern is  a  PCRE  regular  expression,  and  is
 | |
|                  matched  against  the  final  component  of the name (not the
 | |
|                  entire  path).  If   a   subdirectory   name   matches   both
 | |
|                  --include_dir  and --exclude_dir, it is excluded. There is no
 | |
|                  short form for this option.
 | |
| 
 | |
|        -L, --files-without-match
 | |
|                  Instead of outputting lines from the files, just  output  the
 | |
|                  names  of  the files that do not contain any lines that would
 | |
|                  have been output. Each file name is output once, on  a  sepa-
 | |
|                  rate line.
 | |
| 
 | |
|        -l, --files-with-matches
 | |
|                  Instead  of  outputting lines from the files, just output the
 | |
|                  names of the files containing lines that would have been out-
 | |
|                  put.  Each  file  name  is  output  once, on a separate line.
 | |
|                  Searching stops as soon as a matching  line  is  found  in  a
 | |
|                  file.
 | |
| 
 | |
|        --label=name
 | |
|                  This option supplies a name to be used for the standard input
 | |
|                  when file names are being output. If not supplied, "(standard
 | |
|                  input)" is used. There is no short form for this option.
 | |
| 
 | |
|        --line-offsets
 | |
|                  Instead  of  showing lines or parts of lines that match, show
 | |
|                  each match as a line number, the offset from the start of the
 | |
|                  line,  and a length. The line number is terminated by a colon
 | |
|                  (as usual; see the -n option), and the offset and length  are
 | |
|                  separated  by  a  comma.  In  this mode, no context is shown.
 | |
|                  That is, the -A, -B, and -C options are ignored. If there  is
 | |
|                  more  than  one  match in a line, each of them is shown sepa-
 | |
|                  rately. This option is mutually exclusive with --file-offsets
 | |
|                  and --only-matching.
 | |
| 
 | |
|        --locale=locale-name
 | |
|                  This  option specifies a locale to be used for pattern match-
 | |
|                  ing. It overrides the value in the LC_ALL or  LC_CTYPE  envi-
 | |
|                  ronment  variables.  If  no  locale  is  specified,  the PCRE
 | |
|                  library's default (usually the "C" locale) is used. There  is
 | |
|                  no short form for this option.
 | |
| 
 | |
|        -M, --multiline
 | |
|                  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 newline-type, --newline=newline-type
 | |
|                  The  PCRE  library  supports  five  different conventions for
 | |
|                  indicating the ends of lines. They are  the  single-character
 | |
|                  sequences  CR  (carriage  return) and LF (linefeed), the two-
 | |
|                  character sequence CRLF, an "anycrlf" convention, which  rec-
 | |
|                  ognizes  any  of the preceding three types, and an "any" con-
 | |
|                  vention, in which any Unicode line ending sequence is assumed
 | |
|                  to  end a line. The Unicode sequences are the three just men-
 | |
|                  tioned,  plus  VT  (vertical  tab,  U+000B),  FF   (formfeed,
 | |
|                  U+000C),   NEL  (next  line,  U+0085),  LS  (line  separator,
 | |
|                  U+2028), and PS (paragraph separator, U+2029).
 | |
| 
 | |
|                  When  the  PCRE  library  is  built,  a  default  line-ending
 | |
|                  sequence   is  specified.   This  is  normally  the  standard
 | |
|                  sequence for the operating system. Unless otherwise specified
 | |
|                  by  this  option,  pcregrep  uses the library's default.  The
 | |
|                  possible values for this option are CR, LF, CRLF, ANYCRLF, or
 | |
|                  ANY.  This  makes  it  possible to use pcregrep on files that
 | |
|                  have come from other environments without  having  to  modify
 | |
|                  their  line  endings.  If the data that is being scanned does
 | |
|                  not agree with the convention set by  this  option,  pcregrep
 | |
|                  may behave in strange ways.
 | |
| 
 | |
|        -n, --line-number
 | |
|                  Precede each output line by its line number in the file, fol-
 | |
|                  lowed by a colon for matching lines or a hyphen  for  context
 | |
|                  lines.  If the filename is also being output, it precedes the
 | |
|                  line number. This option is forced if --line-offsets is used.
 | |
| 
 | |
|        -o, --only-matching
 | |
|                  Show only the part of the line that  matched  a  pattern.  In
 | |
|                  this  mode,  no context is shown. That is, the -A, -B, and -C
 | |
|                  options are ignored. If there is more than  one  match  in  a
 | |
|                  line,  each  of  them  is shown separately. If -o is combined
 | |
|                  with -v (invert the sense of the match to  find  non-matching
 | |
|                  lines),  no  output  is generated, but the return code is set
 | |
|                  appropriately. This option is mutually exclusive with --file-
 | |
|                  offsets and --line-offsets.
 | |
| 
 | |
|        -q, --quiet
 | |
|                  Work quietly, that is, display nothing except error messages.
 | |
|                  The exit status indicates whether or  not  any  matches  were
 | |
|                  found.
 | |
| 
 | |
|        -r, --recursive
 | |
|                  If  any given path is a directory, recursively scan the files
 | |
|                  it contains, taking note of any --include and --exclude  set-
 | |
|                  tings.  By  default, a directory is read as a normal file; in
 | |
|                  some operating systems this gives an  immediate  end-of-file.
 | |
|                  This  option  is  a  shorthand  for  setting the -d option to
 | |
|                  "recurse".
 | |
| 
 | |
|        -s, --no-messages
 | |
|                  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, --utf-8
 | |
|                  Operate in UTF-8 mode. This option is available only if  PCRE
 | |
|                  has  been compiled with UTF-8 support. Both patterns and sub-
 | |
|                  ject lines must be valid strings of UTF-8 characters.
 | |
| 
 | |
|        -V, --version
 | |
|                  Write the version numbers of pcregrep and  the  PCRE  library
 | |
|                  that is being used to the standard error stream.
 | |
| 
 | |
|        -v, --invert-match
 | |
|                  Invert  the  sense  of  the match, so that lines which do not
 | |
|                  match any of the patterns are the ones that are found.
 | |
| 
 | |
|        -w, --word-regex, --word-regexp
 | |
|                  Force the patterns to match only whole words. This is equiva-
 | |
|                  lent to having \b at the start and end of the pattern.
 | |
| 
 | |
|        -x, --line-regex, --line-regexp
 | |
|                  Force  the  patterns to be anchored (each must start matching
 | |
|                  at the beginning of a line) and in addition, require them  to
 | |
|                  match  entire  lines.  This  is  equivalent to having ^ and $
 | |
|                  characters at the start and end of each alternative branch in
 | |
|                  every pattern.
 | |
| 
 | |
| 
 | |
| ENVIRONMENT VARIABLES
 | |
| 
 | |
|        The  environment  variables  LC_ALL  and LC_CTYPE are examined, in that
 | |
|        order, for a locale. The first one that is set is  used.  This  can  be
 | |
|        overridden  by  the  --locale  option.  If  no  locale is set, the PCRE
 | |
|        library's default (usually the "C" locale) is used.
 | |
| 
 | |
| 
 | |
| NEWLINES
 | |
| 
 | |
|        The -N (--newline) option allows pcregrep to scan files with  different
 | |
|        newline  conventions  from  the  default.  However, the setting of this
 | |
|        option does not affect the way in which pcregrep writes information  to
 | |
|        the  standard  error  and  output streams. It uses the string "\n" in C
 | |
|        printf() calls to indicate newlines, relying on the C  I/O  library  to
 | |
|        convert  this  to  an  appropriate  sequence if the output is sent to a
 | |
|        file.
 | |
| 
 | |
| 
 | |
| OPTIONS COMPATIBILITY
 | |
| 
 | |
|        The majority of short and long forms of pcregrep's options are the same
 | |
|        as  in  the  GNU grep program. Any long option of the form --xxx-regexp
 | |
|        (GNU terminology) is also available as --xxx-regex (PCRE  terminology).
 | |
|        However,  the  --locale,  -M,  --multiline, -u, and --utf-8 options are
 | |
|        specific to pcregrep.
 | |
| 
 | |
| 
 | |
| 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 equals character, or (with one exception) it
 | |
|        may appear in the next command line item. For example:
 | |
| 
 | |
|          --file=/some/file
 | |
|          --file /some/file
 | |
| 
 | |
|        Note, however, that if you want to supply a file name beginning with  ~
 | |
|        as  data  in  a  shell  command,  and have the shell expand ~ to a home
 | |
|        directory, you must separate the file name from the option, because the
 | |
|        shell does not treat ~ specially unless it is at the start of an item.
 | |
| 
 | |
|        The  exception  to  the  above is the --colour (or --color) option, for
 | |
|        which the data is optional. If this option does have data, it  must  be
 | |
|        given  in  the first form, using an equals character. Otherwise it will
 | |
|        be assumed that it has no data.
 | |
| 
 | |
| 
 | |
| MATCHING ERRORS
 | |
| 
 | |
|        It is possible to supply a regular expression that takes  a  very  long
 | |
|        time  to  fail  to  match certain lines. Such patterns normally involve
 | |
|        nested indefinite repeats, for example: (a+)*\d when matched against  a
 | |
|        line  of  a's  with  no  final  digit. The PCRE matching function has a
 | |
|        resource limit that causes it to abort in these circumstances. If  this
 | |
|        happens, pcregrep outputs an error message and the line that caused the
 | |
|        problem to the standard error stream. If there are more  than  20  such
 | |
|        errors, pcregrep gives up.
 | |
| 
 | |
| 
 | |
| DIAGNOSTICS
 | |
| 
 | |
|        Exit status is 0 if any matches were found, 1 if no matches were found,
 | |
|        and 2 for syntax errors and non-existent or inacessible files (even  if
 | |
|        matches  were  found in other files) or too many matching errors. Using
 | |
|        the -s option to suppress error messages about inaccessble  files  does
 | |
|        not affect the return code.
 | |
| 
 | |
| 
 | |
| SEE ALSO
 | |
| 
 | |
|        pcrepattern(3), pcretest(1).
 | |
| 
 | |
| 
 | |
| AUTHOR
 | |
| 
 | |
|        Philip Hazel
 | |
|        University Computing Service
 | |
|        Cambridge CB2 3QH, England.
 | |
| 
 | |
| 
 | |
| REVISION
 | |
| 
 | |
|        Last updated: 01 March 2009
 | |
|        Copyright (c) 1997-2009 University of Cambridge.
 |