Template Version: @(#)sac_nextcase 1.69 02/15/10 SMI
This information is Copyright 2010 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
xgrep
1.2. Name of Document Author/Supplier:
Author: Olga Kyrzhanovska
1.3 Date of This Document:
02 March, 2010
4. Technical Description
I'm sponsoring this fast-track request on behalf of the
POSIX utility community and shell project.
Please note that this is an *open* case.
The release binding is the same as with the ksh93 project: a
patch/micro release of Solaris delivering through ON
Stability levels are as described below.
This project is an amendment to the Korn Shell 93 Integration project
(PSARC/2006/550 and PSARC/2007/035, PSARC/2008/094, PSARC/2008/344
and PSARC/2008/589) specifying the following additional
interfaces:
Addition of /usr/bin/xgrep
Bug/RFE Number(s):
6929154 RFE: Add /usr/bin/xgrep (Augmented regular expressions
(conjunction, negation.))
Interface Stability Description
--------- --------- -----------
/usr/bin/xgrep Committed xgrep command
ksh93 'xgrep' built in Committed xgrep command
Man page for xgrep.1:
========================================================================
NAME
xgrep - search lines in files for matching augmented regular patterns
SYNOPSIS
xgrep [ options ] [ pattern ] [ file ... ]
DESCRIPTION
The xgrep commands search the named input files for lines
containing a match for the given patterns. Matching lines are
printed by default. The standard input is searched if no files are
given or when the file - is specified.
OPTIONS
-G, --basic-regexp
grep mode: basic regular expression
patterns.
-E, --extended-regexp
egrep mode: extended regular expression patterns.
-X, --augmented-regexp
xgrep mode (default): augmented regular expression
patterns.
-P, --perl-regexp
pgrep mode: perl(1) regular expression patterns.
-F, --fixed-string
fgrep mode: fixed string patterns.
-C, --context[=before[,after]]
Set the matched line context before and after
count. By default only matched lines are printed.
The option value may be omitted. The default value
is 2,2.
-c, --count Only print a matching line count for each file.
-e, --expression|pattern|regexp=pattern
Specify a matching pattern. More than one pattern
implies alternation. If this option is specified
then the command line pattern must be omitted.
-f, --file=pattern-file
Each line in pattern-file is a pattern, placed
into a single alternating expression.
-H, --filename|with-filename
Prefix each matched line with the containing file
name.
-h, --no-filename
Suppress containing file name prefix for each
matched line.
-i, --ignore-case
Ignore case when matching.
-l, --files-with-matches
Only print file names with at least one match.
-L, --files-without-matches
Only print file names with no matches.
-b, --highlight Highlight matches using the ansi terminal bold
sequence.
-v, --invert-match|revert-match
Invert the pattern match sense.
-m, --label All patterns must be of the form label:pattern.
Match and count output will be prefixed by the
corresponding label:.
-O, --lenient Enable lenient pattern interpretation. This is the
default.
-x, --line-match|line-regexp
Force patterns to match complete lines.
-n, --number|line-number
Prefix each matched line with its line number.
-N, --name=name Set the standard input file name prefix to name.
The default value is empty.
-q, --quiet|silent
Do not print matching lines.
-S, --strict Enable strict pattern interpretation with
diagnostics.
-s, --suppress|no-messages
Suppress error and warning messages.
-t, --total Only print a single matching line count for all
files.
-w, --word-match|word-regexp
Force patterns to match complete words.
-a Ignored for GNU compatibility.
--help Print help message.
DIAGNOSTICS
Exit status 0 if matches were found, 1 if no matches were found,
where -v inverts the exit status. Exit status 2 for other errors
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
/usr/bin/xgrep and ksh93 xgrep built in command:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|______________________________|____________________________|
| Availability | SUNWcsu |
|______________________________|____________________________|
| CSI | enabled |
|______________________________|____________________________|
| Interface Stability | Committed |
|______________________________|____________________________|
EXAMPLES
Negation ('!' NOT operator):
printf '123\n234\n345\n456\n567\n' | xgrep '^(.*4.*)!$'
will print:
123
567
Conjunction ('&' AND operator):
printf '123\n234\n345\n456\n' | xgrep '^(.45)&(34.)$'
will print:
345
CAVEATS
Some expressions of necessity require exponential space and/or
time.
BUGS
Some expressions may use sub-optimal algorithms. For example,
don't use this implementation to compute primes.
SEE ALSO
awk(1), ed(1), grep(1), ksh93(1), sed(1), perl(1), regex(3)
========================================================================
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
ON
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open