770 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			770 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
PCRE2GREP(1)                General Commands Manual               PCRE2GREP(1)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
NAME
 | 
						|
       pcre2grep - a grep with Perl-compatible regular expressions.
 | 
						|
 | 
						|
SYNOPSIS
 | 
						|
       pcre2grep [options] [long options] [pattern] [path1 path2 ...]
 | 
						|
 | 
						|
 | 
						|
DESCRIPTION
 | 
						|
 | 
						|
       pcre2grep  searches  files  for  character patterns, in the same way as
 | 
						|
       other grep commands do,  but  it  uses  the  PCRE2  regular  expression
 | 
						|
       library  to  support  patterns  that  are  compatible  with the regular
 | 
						|
       expressions of Perl 5. See pcre2syntax(3) for a quick-reference summary
 | 
						|
       of  pattern  syntax,  or  pcre2pattern(3) for a full description of the
 | 
						|
       syntax and semantics of the regular expressions that PCRE2 supports.
 | 
						|
 | 
						|
       Patterns, whether supplied on the command line or in a  separate  file,
 | 
						|
       are given without delimiters. For example:
 | 
						|
 | 
						|
         pcre2grep 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  quotes  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, pcre2grep  reads  the  standard  input.  The
 | 
						|
       standard  input can also be referenced by a name consisting of a single
 | 
						|
       hyphen.  For example:
 | 
						|
 | 
						|
         pcre2grep some-pattern file1 - file3
 | 
						|
 | 
						|
       Input files are searched line by  line.  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
 | 
						|
       pcre2grep behaves. In particular, the -M option makes  it  possible  to
 | 
						|
       search  for  strings  that  span  line  boundaries. What defines a line
 | 
						|
       boundary is controlled by the -N (--newline) option.
 | 
						|
 | 
						|
       The amount of memory used for buffering files that are being scanned is
 | 
						|
       controlled  by a parameter that can be set by the --buffer-size option.
 | 
						|
       The default value for this parameter is  specified  when  pcre2grep  is
 | 
						|
       built,  with  the  default  default  being 20K. A block of memory three
 | 
						|
       times this size is used (to allow for buffering  "before"  and  "after"
 | 
						|
       lines). An error occurs if a line overflows the buffer.
 | 
						|
 | 
						|
       Patterns  can  be  no  longer than 8K or BUFSIZ bytes, 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 a line, no further patterns
 | 
						|
       are considered. However, if --colour (or --color) is used to colour the
 | 
						|
       matching  substrings, or if --only-matching, --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 follow the  one  that  matched
 | 
						|
       are not tried on the earlier part of the line.
 | 
						|
 | 
						|
       This  behaviour  means  that  the  order in which multiple patterns are
 | 
						|
       specified can affect the output when one of the above options is  used.
 | 
						|
       This  is no longer the same behaviour as GNU grep, which now manages to
 | 
						|
       display earlier matches for later patterns (as  long  as  there  is  no
 | 
						|
       overlap).
 | 
						|
 | 
						|
       Patterns  that can match an empty string are accepted, but empty string
 | 
						|
       matches   are   never   recognized.   An   example   is   the   pattern
 | 
						|
       "(super)?(man)?",  in  which  all components are optional. This pattern
 | 
						|
       finds all occurrences 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,  pcre2grep  uses
 | 
						|
       the value to set a locale when calling the PCRE2 library.  The --locale
 | 
						|
       option can be used to override this.
 | 
						|
 | 
						|
 | 
						|
SUPPORT FOR COMPRESSED FILES
 | 
						|
 | 
						|
       It is possible to compile pcre2grep 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.
 | 
						|
 | 
						|
 | 
						|
BINARY FILES
 | 
						|
 | 
						|
       By  default,  a  file that contains a binary zero byte within the first
 | 
						|
       1024 bytes is identified as a binary file, and is processed  specially.
 | 
						|
       (GNU  grep  also  identifies  binary  files  in  this  manner.) See the
 | 
						|
       --binary-files option for a means of changing the way binary files  are
 | 
						|
       handled.
 | 
						|
 | 
						|
 | 
						|
OPTIONS
 | 
						|
 | 
						|
       The  order  in  which some of the options appear can affect the output.
 | 
						|
       For example, both the -h and -l options affect  the  printing  of  file
 | 
						|
       names.  Whichever  comes later in the command line will be the one that
 | 
						|
       takes effect. Similarly, except where noted  below,  if  an  option  is
 | 
						|
       given  twice,  the  later setting is used. Numerical values for options
 | 
						|
       may be followed by K  or  M,  to  signify  multiplication  by  1024  or
 | 
						|
       1024*1024 respectively.
 | 
						|
 | 
						|
       --        This terminates 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
 | 
						|
                 file  names  and/or  line  numbers are being output, a hyphen
 | 
						|
                 separator 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,
 | 
						|
                 pcre2grep guarantees to have  up  to  8K  of  following  text
 | 
						|
                 available for context output.
 | 
						|
 | 
						|
       -a, --text
 | 
						|
                 Treat  binary  files as text. This is equivalent to --binary-
 | 
						|
                 files=text.
 | 
						|
 | 
						|
       -B number, --before-context=number
 | 
						|
                 Output number lines of context before each matching line.  If
 | 
						|
                 file  names  and/or  line  numbers are being output, a hyphen
 | 
						|
                 separator 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,
 | 
						|
                 pcre2grep guarantees to have  up  to  8K  of  preceding  text
 | 
						|
                 available for context output.
 | 
						|
 | 
						|
       --binary-files=word
 | 
						|
                 Specify  how binary files are to be processed. If the word is
 | 
						|
                 "binary" (the default),  pattern  matching  is  performed  on
 | 
						|
                 binary  files,  but  the  only  output is "Binary file <name>
 | 
						|
                 matches" when a match succeeds. If the word is "text",  which
 | 
						|
                 is  equivalent  to  the -a or --text option, binary files are
 | 
						|
                 processed in the same way as any other file.  In  this  case,
 | 
						|
                 when  a  match  succeeds,  the  output may be binary garbage,
 | 
						|
                 which can have nasty effects if sent to a  terminal.  If  the
 | 
						|
                 word  is  "without-match",  which  is  equivalent  to  the -I
 | 
						|
                 option, binary files are  not  processed  at  all;  they  are
 | 
						|
                 assumed not to be of interest and are skipped without causing
 | 
						|
                 any output or affecting the return code.
 | 
						|
 | 
						|
       --buffer-size=number
 | 
						|
                 Set the parameter that controls how much memory is  used  for
 | 
						|
                 buffering files that are being scanned.
 | 
						|
 | 
						|
       -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  lines from the files that are being scanned;
 | 
						|
                 instead output the number of matches (or non-matches if -v is
 | 
						|
                 used)  that would otherwise have caused lines to be shown. By
 | 
						|
                 default, this count is the same as the number  of  suppressed
 | 
						|
                 lines, but if the -M (multiline) option is used (without -v),
 | 
						|
                 there may  be  more  suppressed  lines  than  the  number  of
 | 
						|
                 matches.
 | 
						|
 | 
						|
                 If  no lines are selected, the number zero is output. If sev-
 | 
						|
                 eral files are are being scanned, a count is output for  each
 | 
						|
                 of  them. However, if the --files-with-matches option is also
 | 
						|
                 used, only those files whose counts are greater than zero are
 | 
						|
                 listed.  When  -c  is  used,  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 pcre2grep 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  PCRE2GREP_COLOUR  or  PCRE2GREP_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 nei-
 | 
						|
                 ther 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  in
 | 
						|
                 non-Windows  environments,  for compatibility with GNU grep),
 | 
						|
                 "recurse" (equivalent to the -r option), or "skip"  (silently
 | 
						|
                 skip  the  path, the default in Windows environments). In the
 | 
						|
                 "read" 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; in others it
 | 
						|
                 may provoke an error.
 | 
						|
 | 
						|
       -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 no limit to the number of patterns. They  are
 | 
						|
                 applied  to  each line in the order in which they are defined
 | 
						|
                 until one matches.
 | 
						|
 | 
						|
                 If -f is used with -e, the command line patterns are  matched
 | 
						|
                 first, followed by the patterns from the file(s), independent
 | 
						|
                 of the order in which these options are specified. Note  that
 | 
						|
                 multiple  use  of -e is not the same as a single pattern with
 | 
						|
                 alternatives. For example, X|Y finds the first character in a
 | 
						|
                 line  that  is  X or Y, whereas if the two patterns are given
 | 
						|
                 separately, with X first, pcre2grep 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 matters only if you are  using  -o  or
 | 
						|
                 --colo(u)r to show the part(s) of the line that matched.
 | 
						|
 | 
						|
       --exclude=pattern
 | 
						|
                 Files (but not directories) whose names match the pattern are
 | 
						|
                 skipped without being processed. This applies to  all  files,
 | 
						|
                 whether  listed  on  the  command line, obtained from --file-
 | 
						|
                 list, or by scanning a directory. The pattern is a PCRE2 reg-
 | 
						|
                 ular  expression,  and is matched against the final component
 | 
						|
                 of the file name, not the entire path. The  -F,  -w,  and  -x
 | 
						|
                 options do not apply to this pattern. The option may be given
 | 
						|
                 any number of times in order to specify multiple patterns. If
 | 
						|
                 a  file  name matches both an --include and an --exclude pat-
 | 
						|
                 tern, it is excluded. There is no short form for this option.
 | 
						|
 | 
						|
       --exclude-from=filename
 | 
						|
                 Treat each non-empty line of the file  as  the  data  for  an
 | 
						|
                 --exclude option. What constitutes a newline when reading the
 | 
						|
                 file is the operating system's default. The --newline  option
 | 
						|
                 has  no  effect on this option. This option may be given more
 | 
						|
                 than once in order to specify a number of files to read.
 | 
						|
 | 
						|
       --exclude-dir=pattern
 | 
						|
                 Directories whose names match the pattern are skipped without
 | 
						|
                 being  processed,  whatever  the  setting  of the --recursive
 | 
						|
                 option. This applies to all directories,  whether  listed  on
 | 
						|
                 the command line, obtained from --file-list, or by scanning a
 | 
						|
                 parent directory. The pattern is a PCRE2 regular  expression,
 | 
						|
                 and  is  matched against the final component of the directory
 | 
						|
                 name, not the entire path. The -F, -w, and -x options do  not
 | 
						|
                 apply  to this pattern. The option may be given any number of
 | 
						|
                 times in order to specify more than one pattern. If a  direc-
 | 
						|
                 tory  matches  both  --include-dir  and  --exclude-dir, it is
 | 
						|
                 excluded. There is no short form for this option.
 | 
						|
 | 
						|
       -F, --fixed-strings
 | 
						|
                 Interpret each data-matching  pattern  as  a  list  of  fixed
 | 
						|
                 strings,  separated  by  newlines,  instead  of  as a regular
 | 
						|
                 expression. What constitutes a newline for  this  purpose  is
 | 
						|
                 controlled  by the --newline option. 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 (subject to -w or -x, if
 | 
						|
                 present).  This  option applies only to the patterns that are
 | 
						|
                 matched against the contents of files; it does not  apply  to
 | 
						|
                 patterns  specified  by  any  of  the  --include or --exclude
 | 
						|
                 options.
 | 
						|
 | 
						|
       -f filename, --file=filename
 | 
						|
                 Read patterns from the file, one per  line,  and  match  them
 | 
						|
                 against  each  line of input. What constitutes a newline when
 | 
						|
                 reading the file  is  the  operating  system's  default.  The
 | 
						|
                 --newline option has no effect on this option. 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.
 | 
						|
 | 
						|
                 If this option is given more than  once,  all  the  specified
 | 
						|
                 files  are read. A data line is output if any of the patterns
 | 
						|
                 match it. A file name 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 the
 | 
						|
                 names of paths to be searched.
 | 
						|
 | 
						|
       --file-list=filename
 | 
						|
                 Read  a  list  of  files  and/or  directories  that are to be
 | 
						|
                 scanned from the given file, one  per  line.  Trailing  white
 | 
						|
                 space is removed from each line, and blank lines are ignored.
 | 
						|
                 These paths are processed before any that are listed  on  the
 | 
						|
                 command  line.  The file name can be given as "-" to refer to
 | 
						|
                 the standard input.  If --file and --file-list are both spec-
 | 
						|
                 ified  as  "-",  patterns are read first. This is useful only
 | 
						|
                 when the standard input is a  terminal,  from  which  further
 | 
						|
                 lines  (the  list  of files) can be read after an end-of-file
 | 
						|
                 indication. If this option is given more than once,  all  the
 | 
						|
                 specified files are read.
 | 
						|
 | 
						|
       --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 file name at the start of output
 | 
						|
                 lines when searching a single file. By default, the file name
 | 
						|
                 is not shown in this case.  For matching lines, the file name
 | 
						|
                 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. When the -M option causes a pattern  to  match
 | 
						|
                 more  than  one  line, only the first is preceded by the file
 | 
						|
                 name.
 | 
						|
 | 
						|
       -h, --no-filename
 | 
						|
                 Suppress the output file names when searching multiple files.
 | 
						|
                 By  default,  file  names  are  shown when multiple files are
 | 
						|
                 searched. For matching lines, the file name 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. Anything else
 | 
						|
                 on the command line is ignored.
 | 
						|
 | 
						|
       -I        Ignore  binary  files.  This  is  equivalent   to   --binary-
 | 
						|
                 files=without-match.
 | 
						|
 | 
						|
       -i, --ignore-case
 | 
						|
                 Ignore upper/lower case distinctions during comparisons.
 | 
						|
 | 
						|
       --include=pattern
 | 
						|
                 If  any --include patterns are specified, the only files that
 | 
						|
                 are processed are those that match one of the  patterns  (and
 | 
						|
                 do  not  match  an  --exclude  pattern). This option does not
 | 
						|
                 affect directories, but it  applies  to  all  files,  whether
 | 
						|
                 listed  on the command line, obtained from --file-list, or by
 | 
						|
                 scanning a directory. The pattern is a PCRE2 regular  expres-
 | 
						|
                 sion,  and is matched against the final component of the file
 | 
						|
                 name, not the entire path. The -F, -w, and -x options do  not
 | 
						|
                 apply  to this pattern. The option may be given any number of
 | 
						|
                 times. If a file  name  matches  both  an  --include  and  an
 | 
						|
                 --exclude  pattern,  it  is excluded.  There is no short form
 | 
						|
                 for this option.
 | 
						|
 | 
						|
       --include-from=filename
 | 
						|
                 Treat each non-empty line of the file  as  the  data  for  an
 | 
						|
                 --include option. What constitutes a newline for this purpose
 | 
						|
                 is the operating system's default. The --newline  option  has
 | 
						|
                 no effect on this option. This option may be given any number
 | 
						|
                 of times; all the files are read.
 | 
						|
 | 
						|
       --include-dir=pattern
 | 
						|
                 If any --include-dir patterns are specified, the only  direc-
 | 
						|
                 tories  that  are  processed  are those that match one of the
 | 
						|
                 patterns (and do not match an  --exclude-dir  pattern).  This
 | 
						|
                 applies  to  all  directories,  whether listed on the command
 | 
						|
                 line, obtained from --file-list,  or  by  scanning  a  parent
 | 
						|
                 directory.  The pattern is a PCRE2 regular expression, and is
 | 
						|
                 matched against the final component of  the  directory  name,
 | 
						|
                 not  the entire path. The -F, -w, and -x options do not apply
 | 
						|
                 to this pattern. The option may be given any number of times.
 | 
						|
                 If  a directory 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 normally stops as soon as a matching line is  found
 | 
						|
                 in  a  file.  However, if the -c (count) option is also used,
 | 
						|
                 matching continues in order to obtain the correct count,  and
 | 
						|
                 those  files  that  have  at least one match are listed along
 | 
						|
                 with their counts. Using this option with -c is a way of sup-
 | 
						|
                 pressing the listing of files with no matches.
 | 
						|
 | 
						|
       --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-buffered
 | 
						|
                 When  this  option is given, input is read and processed line
 | 
						|
                 by line, and the output  is  flushed  after  each  write.  By
 | 
						|
                 default,  input is read in large chunks, unless pcre2grep can
 | 
						|
                 determine that it is reading from a terminal (which  is  cur-
 | 
						|
                 rently  possible  only  in Unix-like environments). Output to
 | 
						|
                 terminal is normally automatically flushed by  the  operating
 | 
						|
                 system. This option can be useful when the input or output is
 | 
						|
                 attached to a pipe and you do not want pcre2grep to buffer up
 | 
						|
                 large  amounts  of data. However, its use will affect perfor-
 | 
						|
                 mance, and the -M (multiline) option ceases to work.
 | 
						|
 | 
						|
       --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  PCRE2
 | 
						|
                 library's  default (usually the "C" locale) is used. There is
 | 
						|
                 no short form for this option.
 | 
						|
 | 
						|
       --match-limit=number
 | 
						|
                 Processing some regular expression  patterns  can  require  a
 | 
						|
                 very  large amount of memory, leading in some cases to a pro-
 | 
						|
                 gram crash if not enough is available.   Other  patterns  may
 | 
						|
                 take  a  very  long  time to search for all possible matching
 | 
						|
                 strings.  The  pcre2_match()  function  that  is  called   by
 | 
						|
                 pcre2grep  to  do  the  matching  has two parameters that can
 | 
						|
                 limit the resources that it uses.
 | 
						|
 | 
						|
                 The  --match-limit  option  provides  a  means  of   limiting
 | 
						|
                 resource usage when processing patterns that are not going to
 | 
						|
                 match, but which have a very large number of possibilities in
 | 
						|
                 their  search  trees.  The  classic example is a pattern that
 | 
						|
                 uses nested unlimited repeats. Internally, PCRE2 uses a func-
 | 
						|
                 tion  called  match()  which  it  calls repeatedly (sometimes
 | 
						|
                 recursively). The limit set by --match-limit  is  imposed  on
 | 
						|
                 the  number  of times this function is called during a match,
 | 
						|
                 which has the effect of limiting the amount  of  backtracking
 | 
						|
                 that can take place.
 | 
						|
 | 
						|
                 The --recursion-limit option is similar to --match-limit, but
 | 
						|
                 instead of limiting the total number of times that match() is
 | 
						|
                 called, it limits the depth of recursive calls, which in turn
 | 
						|
                 limits the amount of memory that can be used.  The  recursion
 | 
						|
                 depth  is  a  smaller  number than the total number of calls,
 | 
						|
                 because not all calls to match() are recursive. This limit is
 | 
						|
                 of use only if it is set smaller than --match-limit.
 | 
						|
 | 
						|
                 There  are no short forms for these options. The default set-
 | 
						|
                 tings are specified when the PCRE2 library is compiled,  with
 | 
						|
                 the default default being 10 million.
 | 
						|
 | 
						|
       -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 a successful match may consist of  more  than  one
 | 
						|
                 line.  The  first is the line in which the match started, and
 | 
						|
                 the last is the line in which the match ended. If the matched
 | 
						|
                 string  ends  with  a newline sequence the output ends at the
 | 
						|
                 end of that line.
 | 
						|
 | 
						|
                 When this option is set, the PCRE2 library is called in "mul-
 | 
						|
                 tiline"  mode.   However, pcre2grep still processes the input
 | 
						|
                 line by line. The difference is that  a  matched  string  may
 | 
						|
                 extend  past  the  end  of a line and continue on one or more
 | 
						|
                 subsequent lines. The newline sequence  must  be  matched  as
 | 
						|
                 part of the pattern. For example, to find the phrase "regular
 | 
						|
                 expression" in a file where "regular" might be at the end  of
 | 
						|
                 a  line  and  "expression" at the start of the next line, you
 | 
						|
                 could use this command:
 | 
						|
 | 
						|
                   pcre2grep -M 'regular\s+expression' <file>
 | 
						|
 | 
						|
                 The \s escape sequence matches  any  white  space  character,
 | 
						|
                 including  newlines,  and  is  followed  by  + so as to match
 | 
						|
                 trailing white space on the first line as  well  as  possibly
 | 
						|
                 handling a two-character newline sequence.
 | 
						|
 | 
						|
                 There  is a limit to the number of lines that can be matched,
 | 
						|
                 imposed by the way that pcre2grep buffers the input  file  as
 | 
						|
                 it  scans  it.  However,  pcre2grep  ensures that at least 8K
 | 
						|
                 characters or the rest of the file (whichever is the shorter)
 | 
						|
                 are  available for forward matching, and similarly the previ-
 | 
						|
                 ous 8K characters (or all the previous characters,  if  fewer
 | 
						|
                 than 8K) are guaranteed to be available for lookbehind asser-
 | 
						|
                 tions. The -M option does not work when input is read line by
 | 
						|
                 line (see --line-buffered.)
 | 
						|
 | 
						|
       -N newline-type, --newline=newline-type
 | 
						|
                 The  PCRE2  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  (form  feed,
 | 
						|
                 U+000C),   NEL  (next  line,  U+0085),  LS  (line  separator,
 | 
						|
                 U+2028), and PS (paragraph separator, U+2029).
 | 
						|
 | 
						|
                 When the  PCRE2  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,  pcre2grep uses the library's default.  The
 | 
						|
                 possible values for this option are CR, LF, CRLF, ANYCRLF, or
 | 
						|
                 ANY.  This  makes  it possible to use pcre2grep to scan files
 | 
						|
                 that have come from other environments without having to mod-
 | 
						|
                 ify  their  line  endings.  If the data that is being scanned
 | 
						|
                 does not agree  with  the  convention  set  by  this  option,
 | 
						|
                 pcre2grep  may  behave in strange ways. Note that this option
 | 
						|
                 does not apply to files specified by the -f,  --exclude-from,
 | 
						|
                 or  --include-from  options,  which  are  expected to use the
 | 
						|
                 operating system's standard newline sequence.
 | 
						|
 | 
						|
       -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 file name is also being output, it precedes the
 | 
						|
                 line  number.  When  the  -M option causes a pattern to match
 | 
						|
                 more than one line, only the first is preceded  by  its  line
 | 
						|
                 number. This option is forced if --line-offsets is used.
 | 
						|
 | 
						|
       --no-jit  If  the  PCRE2 library is built with support for just-in-time
 | 
						|
                 compiling (which speeds up matching), pcre2grep automatically
 | 
						|
                 makes use of this, unless it was explicitly disabled at build
 | 
						|
                 time. This option can be used to disable the use  of  JIT  at
 | 
						|
                 run  time. It is provided for testing and working round prob-
 | 
						|
                 lems.  It should never be needed in normal use.
 | 
						|
 | 
						|
       -o, --only-matching
 | 
						|
                 Show only the part of the line that matched a pattern instead
 | 
						|
                 of  the  whole  line. 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. If the matched  portion  of
 | 
						|
                 the  line is empty, nothing is output unless the file name or
 | 
						|
                 line number are being printed, in which case they  are  shown
 | 
						|
                 on an otherwise empty line. This option is mutually exclusive
 | 
						|
                 with --file-offsets and --line-offsets.
 | 
						|
 | 
						|
       -onumber, --only-matching=number
 | 
						|
                 Show only the part of the line  that  matched  the  capturing
 | 
						|
                 parentheses of the given number. Up to 32 capturing parenthe-
 | 
						|
                 ses are supported, and -o0 is equivalent to -o without a num-
 | 
						|
                 ber.  Because  these options can be given without an argument
 | 
						|
                 (see above), if an argument is present, it must be  given  in
 | 
						|
                 the  same  shell item, for example, -o3 or --only-matching=2.
 | 
						|
                 The comments given for the non-argument case above also apply
 | 
						|
                 to  this  case. If the specified capturing parentheses do not
 | 
						|
                 exist in the pattern, or were not set in the  match,  nothing
 | 
						|
                 is  output unless the file name or line number are being out-
 | 
						|
                 put.
 | 
						|
 | 
						|
                 If this option is given multiple times,  multiple  substrings
 | 
						|
                 are  output, in the order the options are given. For example,
 | 
						|
                 -o3 -o1 -o3 causes the substrings matched by capturing paren-
 | 
						|
                 theses  3  and  1  and then 3 again to be output. By default,
 | 
						|
                 there is no separator (but see the next option).
 | 
						|
 | 
						|
       --om-separator=text
 | 
						|
                 Specify a separating string for multiple occurrences  of  -o.
 | 
						|
                 The  default is an empty string. Separating strings are never
 | 
						|
                 coloured.
 | 
						|
 | 
						|
       -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".
 | 
						|
 | 
						|
       --recursion-limit=number
 | 
						|
                 See --match-limit above.
 | 
						|
 | 
						|
       -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 PCRE2
 | 
						|
                 has been compiled with UTF-8 support. All patterns (including
 | 
						|
                 those  for  any --exclude and --include options) and all sub-
 | 
						|
                 ject lines that are scanned must be valid  strings  of  UTF-8
 | 
						|
                 characters.
 | 
						|
 | 
						|
       -V, --version
 | 
						|
                 Write  the version numbers of pcre2grep and the PCRE2 library
 | 
						|
                 to the standard output and then exit. Anything  else  on  the
 | 
						|
                 command line is ignored.
 | 
						|
 | 
						|
       -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. This
 | 
						|
                 option applies only to the patterns that are matched  against
 | 
						|
                 the  contents  of files; it does not apply to patterns speci-
 | 
						|
                 fied by any of the --include or --exclude options.
 | 
						|
 | 
						|
       -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 top-level
 | 
						|
                 branch in every pattern. This option applies only to the pat-
 | 
						|
                 terns that are matched against the contents of files; it does
 | 
						|
                 not apply to patterns specified by any of  the  --include  or
 | 
						|
                 --exclude options.
 | 
						|
 | 
						|
 | 
						|
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 PCRE2
 | 
						|
       library's default (usually the "C" locale) is used.
 | 
						|
 | 
						|
 | 
						|
NEWLINES
 | 
						|
 | 
						|
       The -N (--newline) option allows pcre2grep to scan files with different
 | 
						|
       newline conventions from the default. Any parts of the input files that
 | 
						|
       are written to the standard output are copied identically,  with  what-
 | 
						|
       ever  newline sequences they have in the input. However, the setting of
 | 
						|
       this option does not affect the interpretation of  files  specified  by
 | 
						|
       the -f, --exclude-from, or --include-from options, which are assumed to
 | 
						|
       use the operating system's  standard  newline  sequence,  nor  does  it
 | 
						|
       affect  the way in which pcre2grep writes informational messages to the
 | 
						|
       standard error and output streams. For these it uses the string "\n" to
 | 
						|
       indicate  newlines,  relying on the C I/O library to convert this to an
 | 
						|
       appropriate sequence.
 | 
						|
 | 
						|
 | 
						|
OPTIONS COMPATIBILITY
 | 
						|
 | 
						|
       Many of the short and long forms of pcre2grep'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 (PCRE2 terminology). How-
 | 
						|
       ever,  the  --file-list, --file-offsets, --include-dir, --line-offsets,
 | 
						|
       --locale, --match-limit, -M, --multiline, -N,  --newline,  --om-separa-
 | 
						|
       tor,  --recursion-limit,  -u,  and  --utf-8  options  are  specific  to
 | 
						|
       pcre2grep, as is the use of the --only-matching option with a capturing
 | 
						|
       parentheses number.
 | 
						|
 | 
						|
       Although  most  of the common options work the same way, a few are dif-
 | 
						|
       ferent in pcre2grep. For example, the --include option's argument is  a
 | 
						|
       glob  for GNU grep, but a regular expression for pcre2grep. If both the
 | 
						|
       -c and -l options are given, GNU grep lists only  file  names,  without
 | 
						|
       counts, but pcre2grep gives the counts as well.
 | 
						|
 | 
						|
 | 
						|
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 (with one exception) in the next command line item. For exam-
 | 
						|
       ple:
 | 
						|
 | 
						|
         -f/some/file
 | 
						|
         -f /some/file
 | 
						|
 | 
						|
       The exception is the -o option, which may appear with or without  data.
 | 
						|
       Because  of this, if data is present, it must follow immediately in the
 | 
						|
       same item, for example -o3.
 | 
						|
 | 
						|
       If a long form option is used, the data may appear in the same  command
 | 
						|
       line  item,  separated by an equals character, or (with two exceptions)
 | 
						|
       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  exceptions  to the above are the --colour (or --color) and --only-
 | 
						|
       matching options, for which the data  is  optional.  If  one  of  these
 | 
						|
       options  does  have  data, it must be given in the first form, using an
 | 
						|
       equals character. Otherwise pcre2grep will assume 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 PCRE2 matching function has a
 | 
						|
       resource limit that causes it to abort in these circumstances. If  this
 | 
						|
       happens,  pcre2grep  outputs  an error message and the line that caused
 | 
						|
       the problem to the standard error stream. If there  are  more  than  20
 | 
						|
       such errors, pcre2grep gives up.
 | 
						|
 | 
						|
       The  --match-limit  option  of pcre2grep can be used to set the overall
 | 
						|
       resource limit; there is a second option called --recursion-limit  that
 | 
						|
       sets  a limit on the amount of memory (usually stack) that is used (see
 | 
						|
       the discussion of these options above).
 | 
						|
 | 
						|
 | 
						|
DIAGNOSTICS
 | 
						|
 | 
						|
       Exit status is 0 if any matches were found, 1 if no matches were found,
 | 
						|
       and  2  for syntax errors, overlong lines, non-existent or inaccessible
 | 
						|
       files (even if matches were found in other files) or too many  matching
 | 
						|
       errors. Using the -s option to suppress error messages about inaccessi-
 | 
						|
       ble files does not affect the return code.
 | 
						|
 | 
						|
 | 
						|
SEE ALSO
 | 
						|
 | 
						|
       pcre2pattern(3), pcre2syntax(3).
 | 
						|
 | 
						|
 | 
						|
AUTHOR
 | 
						|
 | 
						|
       Philip Hazel
 | 
						|
       University Computing Service
 | 
						|
       Cambridge, England.
 | 
						|
 | 
						|
 | 
						|
REVISION
 | 
						|
 | 
						|
       Last updated: 03 January 2015
 | 
						|
       Copyright (c) 1997-2015 University of Cambridge.
 |