New sed manpage
This commit is contained in:
parent
f6436dc1a0
commit
1250e94d56
1 changed files with 146 additions and 253 deletions
399
man/man1/sed.1
399
man/man1/sed.1
|
@ -1,80 +1,39 @@
|
||||||
.TH sed 1 "November 19, 1995"
|
.TH sed 1 "March 30, 2006"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
sed \- the stream editor
|
sed \- the stream editor
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B sed
|
sed [-n] [-g] [-e script ] [-f sfile ] [ file ] ...
|
||||||
.RB [ \-n ]
|
|
||||||
.RB [ \-g ]
|
|
||||||
.RB [ \-e
|
|
||||||
.IR script ]
|
|
||||||
.RB [ \-f
|
|
||||||
.IR sfile ]
|
|
||||||
.RI [ file " ...]"
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
Sed copies the named files (standard input default) to the standard
|
Sed copies the named files (standard input default) to the standard
|
||||||
output, edited according to a script of commands.
|
output, edited according to a script of commands.
|
||||||
.P
|
.P
|
||||||
An
|
An -e option supplies a single edit command from the next argument;
|
||||||
.B \-e
|
if there are several of these they are executed in the order in which
|
||||||
option supplies a single edit command from the next argument;
|
they appear. If there is just one -e option and no -f 's, the -e flag
|
||||||
if there are several of these they are executed in the order in which
|
may be omitted.
|
||||||
they appear. If there is just one
|
|
||||||
.B \-e
|
|
||||||
option and no
|
|
||||||
.BR \-f "'s,"
|
|
||||||
the
|
|
||||||
.B \-e
|
|
||||||
flag may be omitted.
|
|
||||||
.P
|
.P
|
||||||
An
|
An -f option causes commands to be taken from the file "sfile"; if
|
||||||
.B \-f
|
there are several of these they are executed in the order in which
|
||||||
option causes commands to be taken from the file "sfile"; if
|
they appear; -e and -f commands may be mixed.
|
||||||
there are several of these they are executed in the order in which
|
|
||||||
they appear;
|
|
||||||
.B \-e
|
|
||||||
and
|
|
||||||
.B \-f
|
|
||||||
commands may be mixed.
|
|
||||||
.P
|
.P
|
||||||
The
|
The -g option causes sed to act as though every substitute command
|
||||||
.B \-g
|
in the script has a g suffix.
|
||||||
option causes
|
|
||||||
.B sed
|
|
||||||
to act as though every substitute command
|
|
||||||
in the script has a
|
|
||||||
.B g
|
|
||||||
suffix.
|
|
||||||
.P
|
.P
|
||||||
The
|
The -n option suppresses the default output.
|
||||||
.B \-n
|
|
||||||
option suppresses the default output.
|
|
||||||
.P
|
.P
|
||||||
A script consists of commands, one per line, of the following form:
|
A script consists of commands, one per line, of the following form:
|
||||||
.PP
|
|
||||||
[address [, address] ] function [arguments]
|
[address [, address] ] function [arguments]
|
||||||
.PP
|
|
||||||
Normally
|
Normally sed cyclically copies a line of input into a current text
|
||||||
.B sed
|
|
||||||
cyclically copies a line of input into a current text
|
|
||||||
buffer, then applies all commands whose addresses select the buffer in
|
buffer, then applies all commands whose addresses select the buffer in
|
||||||
sequence, then copies the buffer to standard output and clears it.
|
sequence, then copies the buffer to standard output and clears it.
|
||||||
.P
|
.P
|
||||||
The
|
The -n option suppresses normal output (so that only p and w output
|
||||||
.B \-n
|
is done). Also, some commands (n, N) do their own line reads, and some
|
||||||
option suppresses normal output (so that only
|
others (d, D) cause all commands following in the script to be skipped
|
||||||
.B p
|
(the D command also suppresses the clearing of the current text buffer
|
||||||
and
|
that would normally occur before the next cycle).
|
||||||
.B w
|
|
||||||
output is done). Also, some commands
|
|
||||||
.RB ( n ,
|
|
||||||
.BR N )
|
|
||||||
do their own line reads, and some others
|
|
||||||
.RB ( d ,
|
|
||||||
.BR D )
|
|
||||||
cause all commands following in the script to be skipped (the
|
|
||||||
.B D
|
|
||||||
command also suppresses the clearing of the current text
|
|
||||||
buffer that would normally occur before the next cycle).
|
|
||||||
.P
|
.P
|
||||||
It is also helpful to know that there's a second buffer (called the `hold
|
It is also helpful to know that there's a second buffer (called the `hold
|
||||||
space' that can be copied or appended to or from or swapped with
|
space' that can be copied or appended to or from or swapped with
|
||||||
|
@ -83,30 +42,27 @@ the current text buffer.
|
||||||
An address is: a decimal numeral (which matches the line it numbers where line
|
An address is: a decimal numeral (which matches the line it numbers where line
|
||||||
numbers start at 1 and run cumulatively across files), or a `$' that addresses
|
numbers start at 1 and run cumulatively across files), or a `$' that addresses
|
||||||
the last line of input, or a context address, which is a `/regular
|
the last line of input, or a context address, which is a `/regular
|
||||||
expression/', in the style of
|
expression/', in the style of ed (1) modified thus:
|
||||||
.BR ed (1)
|
|
||||||
modified thus:
|
|
||||||
.P
|
.P
|
||||||
.TP 5
|
.TP 5
|
||||||
(1)
|
(1)
|
||||||
The escape sequence `\en' matches a newline embedded in the buffer,
|
The escape sequence `\\n' matches a newline embedded in the buffer,
|
||||||
and `\et' matches a tab.
|
and `\\t' matches a tab.
|
||||||
.TP 5
|
.TP 5
|
||||||
(2)
|
(2)
|
||||||
A command line with no addresses selects every buffer.
|
A command line with no addresses selects every buffer.
|
||||||
.TP 5
|
.TP 5
|
||||||
(3)
|
(3)
|
||||||
A command line with one address selects every buffer that matches
|
A command line with one address selects every buffer that matches
|
||||||
that address.
|
that address.
|
||||||
.TP 5
|
.TP 5
|
||||||
(4)
|
(4)
|
||||||
A command line with two addresses selects the inclusive range from
|
A command line with two addresses selects the inclusive range from
|
||||||
the first input buffer that matches the first address through the
|
the first input buffer that matches the first address through the
|
||||||
next input buffer that matches the second. (If the second address
|
next input buffer that matches the second. (If the second address
|
||||||
is a number less than or equal to the line number first selected,
|
is a number less than or equal to the line number first selected,
|
||||||
only one line is selected.) Once the second address is matched
|
only one line is selected.) Once the second address is matched sed
|
||||||
.B sed
|
starts looking for the first one again; thus, any number of these
|
||||||
starts looking for the first one again; thus, any number of these
|
|
||||||
ranges will be matched.
|
ranges will be matched.
|
||||||
.P
|
.P
|
||||||
The negation operator '!' can prefix a command to apply it to every
|
The negation operator '!' can prefix a command to apply it to every
|
||||||
|
@ -115,276 +71,213 @@ line not selected by the address(es).
|
||||||
In the following list of functions, the maximum number of addresses
|
In the following list of functions, the maximum number of addresses
|
||||||
permitted for each function is indicated in parentheses.
|
permitted for each function is indicated in parentheses.
|
||||||
.P
|
.P
|
||||||
An argument denoted "text" consists of one or more lines, with all
|
An argument denoted "text" consists of one or more lines, with all
|
||||||
but the last ending with `\e' to hide the newline.
|
but the last ending with `\' to hide the newline.
|
||||||
.P
|
.P
|
||||||
Backslashes in text are treated like backslashes in the replacement
|
Backslashes in text are treated like backslashes in the replacement
|
||||||
string of an
|
string of an `s' command and may be used to protect initial whitespace
|
||||||
.B s
|
(blanks and tabs) against the stripping that is done on every line of
|
||||||
command and may be used to protect initial whitespace (blanks and tabs)
|
the script.
|
||||||
against the stripping that is done on every line of the script.
|
|
||||||
.P
|
.P
|
||||||
An argument denoted "rfile" or "wfile" must be last on the command
|
An argument denoted "rfile" or "wfile" must be last on the command
|
||||||
line. Each wfile is created before processing begins. There can be at
|
line. Each wfile is created before processing begins. There can be at
|
||||||
most 10 distinct wfile arguments.
|
most 10 distinct wfile arguments.
|
||||||
.ta +\w'nm'u +\w'"command"m'u
|
|
||||||
.TP 5
|
.TP 5
|
||||||
a "text" (1)
|
a "text" (1)
|
||||||
Append. Place text on output before reading the next input line.
|
Append. Place text on output before reading the next input line.
|
||||||
.TP 5
|
.TP 5
|
||||||
b "label" (2)
|
b "label" (2)
|
||||||
Branch to the `:' command bearing the label. If no label is given,
|
Branch to the `:' command bearing the label. If no label is given,
|
||||||
branch to the end of the script.
|
branch to the end of the script.
|
||||||
.TP 5
|
.TP 5
|
||||||
c "text" (2)
|
c "text" (2)
|
||||||
Change. Delete the current text buffer. With 0 or 1 address, or at
|
Change. Delete the current text buffer. With 0 or 1 address, or at
|
||||||
the end of a 2-address range, place text on the output. Start the next
|
the end of a 2-address range, place text on the output. Start the next
|
||||||
cycle.
|
cycle.
|
||||||
.TP 5
|
.TP 5
|
||||||
d (2)
|
d (2)
|
||||||
Delete the current text buffer. Start the next cycle.
|
Delete the current text buffer. Start the next cycle.
|
||||||
.TP 5
|
.TP 5
|
||||||
D (2)
|
D (2)
|
||||||
Delete the first line of the current text buffer (all chars up to the
|
Delete the first line of the current text buffer (all chars up to the
|
||||||
first newline). Start the next cycle.
|
first newline). Start the next cycle.
|
||||||
.TP 5
|
.TP 5
|
||||||
g (2)
|
g (2)
|
||||||
Replace the contents of the current text buffer with the contents of
|
Replace the contents of the current text buffer with the contents of
|
||||||
the hold space.
|
the hold space.
|
||||||
.TP 5
|
.TP 5
|
||||||
G (2)
|
G (2)
|
||||||
Append the contents of the hold space to the current text buffer.
|
Append the contents of the hold space to the current text buffer.
|
||||||
.TP 5
|
.TP 5
|
||||||
h (2)
|
h (2)
|
||||||
Copy the current text buffer into the hold space.
|
Copy the current text buffer into the hold space.
|
||||||
.TP 5
|
.TP 5
|
||||||
H (2)
|
H (2)
|
||||||
Append a copy of the current text buffer to the hold space.
|
Append a copy of the current text buffer to the hold space.
|
||||||
.TP 5
|
.TP 5
|
||||||
i "text" (1)
|
i "text" (1)
|
||||||
Insert. Place text on the standard output.
|
Insert. Place text on the standard output.
|
||||||
.TP 5
|
.TP 5
|
||||||
l (2)
|
l (2)
|
||||||
List. Sends the pattern space to standard output. A "w" option may
|
List. Sends the pattern space to standard output. A "w" option may
|
||||||
follow as in the
|
follow as in the s command below. Non-printable characters expand to:
|
||||||
.B s
|
|
||||||
command below. Non-printable characters expand to:
|
\\b -- backspace (ASCII 08)
|
||||||
.sp .4v
|
\\t -- tab (ASCII 09)
|
||||||
.in +3
|
\\n -- newline (ASCII 10)
|
||||||
.nf
|
\\r -- return (ASCII 13)
|
||||||
.ta +\w'xxxn'u +\w'nnnn'u +\w'backspace 'u
|
\\e -- escape (ASCII 27)
|
||||||
\eb \-\- backspace (ASCII 08)
|
\\xx -- the ASCII character corresponding to 2 hex digits xx.
|
||||||
\et \-\- tab (ASCII 09)
|
|
||||||
\en \-\- newline (ASCII 10)
|
|
||||||
\er \-\- return (ASCII 13)
|
|
||||||
\ee \-\- escape (ASCII 27)
|
|
||||||
\exx \-\- the ASCII character corresponding to 2 hex digits xx.
|
|
||||||
.fi
|
|
||||||
.in -3
|
|
||||||
.ta +\w'nm'u +\w'"command"m'u
|
|
||||||
.TP 5
|
.TP 5
|
||||||
n (2)
|
Dump. Hex-dump the pattern space to standard output.
|
||||||
Copy the current text buffer to standard output. Read the next line
|
.TP 5
|
||||||
|
n (2)
|
||||||
|
Copy the current text buffer to standard output. Read the next line
|
||||||
of input into it.
|
of input into it.
|
||||||
.TP 5
|
.TP 5
|
||||||
N (2)
|
N (2)
|
||||||
Append the next line of input to the current text buffer, inserting
|
Append the next line of input to the current text buffer, inserting
|
||||||
an embedded newline between the two. The current line number changes.
|
an embedded newline between the two. The current line number changes.
|
||||||
.TP 5
|
.TP 5
|
||||||
p (2)
|
p (2)
|
||||||
Print. Copy the current text buffer to the standard output.
|
Print. Copy the current text buffer to the standard output.
|
||||||
.TP 5
|
.TP 5
|
||||||
P (2)
|
P (2)
|
||||||
Copy the first line of the current text buffer (all chars up to the
|
Copy the first line of the current text buffer (all chars up to the
|
||||||
first newline) to standard output.
|
first newline) to standard output.
|
||||||
.TP 5
|
.TP 5
|
||||||
q (1)
|
q (1)
|
||||||
Quit. Branch to the end of the script. Do not start a new cycle.
|
Quit. Branch to the end of the script. Do not start a new cycle.
|
||||||
.TP 5
|
.TP 5
|
||||||
r "rfile" (1)
|
r "rfile" (1)
|
||||||
Read the contents of rfile. Place them on the output before reading
|
Read the contents of rfile. Place them on the output before reading
|
||||||
the next input line.
|
the next input line.
|
||||||
.TP 5
|
.TP 5
|
||||||
s /regular-expression/replacement/flags\0\0\0\0\0\0(2)
|
s /regular expression/replacement/flags (2)
|
||||||
Substitute the replacement for instances of the regular expression
|
Substitute the replacement for instances of the regular expression
|
||||||
in the current text buffer. Any character may be used instead of `/'.
|
in the current text buffer. Any character may be used instead of `/'.
|
||||||
For a fuller description see ed (1).
|
For a fuller description see ed (1).
|
||||||
Flags is zero or more of the following:
|
Flags is zero or more of the following:
|
||||||
.sp .4v
|
|
||||||
.ta +\w'gm'u +\w'nnm'u
|
g -- Global. Substitute for all nonoverlapping instances of the string
|
||||||
.in +\w'gmnnm'u
|
rather than just the first one.
|
||||||
.ti -\w'gmnnm'u
|
|
||||||
g \-\- Global. Substitute for all nonoverlapping instances of
|
p -- Print the pattern space if a replacement was made.
|
||||||
the string rather than just the first one.
|
|
||||||
.sp .4v
|
w -- Write. Append the current text buffer to a file argument as in a
|
||||||
.ti -\w'gmnnm'u
|
w command if a replacement is made. Standard output is used if no
|
||||||
p \-\- Print the pattern space if a replacement was made.
|
file argument is given
|
||||||
.sp .4v
|
|
||||||
.ti -\w'gmnnm'u
|
|
||||||
w \-\- Write. Append the current text buffer to a file argument
|
|
||||||
as in a w command if a replacement is made. Standard output is used if no
|
|
||||||
file argument is given
|
|
||||||
.in -\w'gmnnm'u
|
|
||||||
.ta +\w'nm'u +\w'"command"m'u
|
|
||||||
.TP 5
|
.TP 5
|
||||||
t "label" (2)
|
t "label" (2)
|
||||||
Branch-if-test. Branch to the
|
Branch-if-test. Branch to the : command with the given label if any
|
||||||
.B :
|
|
||||||
command with the given label if any
|
|
||||||
substitutes have been made since the most recent read of an input line
|
substitutes have been made since the most recent read of an input line
|
||||||
or execution of a
|
or execution of a `t'or `T'. If no label is given, branch to the end
|
||||||
.B t
|
of the script.
|
||||||
or
|
|
||||||
.BR T .
|
|
||||||
If no label is given, branch to the end of the script.
|
|
||||||
.TP 5
|
.TP 5
|
||||||
T "label" (2)
|
T "label" (2)
|
||||||
Branch-on-error. Branch to the
|
Branch-on-error. Branch to the : command with the given label if no
|
||||||
.B :
|
substitutes have succeeded since the last input line or t or T command.
|
||||||
command with the given label if no substitutes have succeeded since the
|
Branch to the end of the script if no label is given.
|
||||||
last input line or
|
|
||||||
.B t
|
|
||||||
or
|
|
||||||
.B T
|
|
||||||
command. Branch to the end of the script if no label is given.
|
|
||||||
.TP 5
|
.TP 5
|
||||||
w "wfile" (2)
|
w "wfile" (2)
|
||||||
Write. Append the current text buffer to wfile.
|
Write. Append the current text buffer to wfile .
|
||||||
.TP 5
|
.TP 5
|
||||||
W "wfile" (2)
|
W "wfile" (2)
|
||||||
Write first line. Append first line of the current text buffer
|
Write first line. Append first line of the current text buffer
|
||||||
to wfile.
|
to wfile.
|
||||||
.TP 5
|
.TP 5
|
||||||
x (2)
|
x (2)
|
||||||
Exchange the contents of the current text buffer and hold space.
|
Exchange the contents of the current text buffer and hold space.
|
||||||
.TP 5
|
.TP 5
|
||||||
y /string1/string2/\0\0\0\0\0\0(2)
|
y /string1/string2/ (2)
|
||||||
Translate. Replace each occurrence of a character in string1 with
|
Translate. Replace each occurrence of a character in string1 with
|
||||||
the corresponding character in string2. The lengths of these strings
|
the corresponding character in string2. The lengths of these strings
|
||||||
must be equal.
|
must be equal.
|
||||||
.TP 5
|
.TP 5
|
||||||
! "command" (2)
|
! "command" (2)
|
||||||
All-but. Apply the function (or group, if function is
|
All-but. Apply the function (or group, if function is `{') only to
|
||||||
.BR { )
|
lines not selected by the address(es).
|
||||||
only to lines not selected by the address(es).
|
|
||||||
.TP 5
|
.TP 5
|
||||||
: "label" (0)
|
: "label" (0)
|
||||||
This command does nothing but hold a label for
|
This command does nothing but hold a label for `b' and `t' commands
|
||||||
.B b
|
to branch to.
|
||||||
and
|
|
||||||
.B t
|
|
||||||
commands to branch to.
|
|
||||||
.TP 5
|
.TP 5
|
||||||
= (1)
|
= (1)
|
||||||
Place the current line number on the standard output as a line.
|
Place the current line number on the standard output as a line.
|
||||||
.TP 5
|
.TP 5
|
||||||
{ (2)
|
{ (2)
|
||||||
Execute the following commands through a matching `}' only when the
|
Execute the following commands through a matching `}' only when the
|
||||||
current line matches the address or address range given.
|
current line matches the address or address range given.
|
||||||
.P
|
.P
|
||||||
An empty command is ignored.
|
An empty command is ignored.
|
||||||
.P
|
.P
|
||||||
.SH PORTABILITY
|
.SH PORTABILITY
|
||||||
This tool was reverse-engineered from BSD 4.1 UNIX
|
This tool was reverse-engineered from BSD 4.1 UNIX sed, and (as far
|
||||||
.BR sed ,
|
as the author's knowledge and tests can determine) is compatible with
|
||||||
and (as far
|
it. All documented features of BSD 4.1 sed are supported.
|
||||||
as the author's knowledge and tests can determine) is compatible with
|
|
||||||
it. All documented features of BSD 4.1 sed are supported.
|
|
||||||
.P
|
.P
|
||||||
One undocumented feature (a leading 'n' in the first comment having
|
One undocumented feature (a leading 'n' in the first comment having
|
||||||
the same effect as an
|
the same effect as an -n command-line option) has been omitted.
|
||||||
.B \-n
|
|
||||||
command-line option) has been omitted.
|
|
||||||
.P
|
.P
|
||||||
The following bugs and limitations have been fixed:
|
The following bugs and limitations have been fixed:
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
There is no hidden length limit (40 in BSD sed) on
|
There is no hidden length limit (40 in BSD sed) on w file names.
|
||||||
.B w
|
|
||||||
file names.
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
There is no limit (8 in BSD sed) on the length of labels.
|
There is no limit (8 in BSD sed) on the length of labels.
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
The exchange command now works for long pattern and hold spaces.
|
The exchange command now works for long pattern and hold spaces.
|
||||||
.P
|
.P
|
||||||
The following enhancements to existing commands have been made:
|
The following enhancements to existing commands have been made:
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
.BR a ,
|
a, i commands don't insist on a leading backslash-\\n in the text.
|
||||||
.B i
|
|
||||||
commands don't insist on a leading backslash-\en in the text.
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
.BR r ,
|
r, w commands don't insist on whitespace before the filename.
|
||||||
.B w
|
|
||||||
commands don't insist on whitespace before the filename.
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
The
|
The g, p and P options on s commands may be given in any order.
|
||||||
.BR g ,
|
|
||||||
.B p
|
|
||||||
and
|
|
||||||
.B P
|
|
||||||
options on
|
|
||||||
.B s
|
|
||||||
commands may be given in any order.
|
|
||||||
.P
|
.P
|
||||||
Some enhancements to regular-expression syntax have been made:
|
Some enhancements to regular-expression syntax have been made:
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
\et is recognized in REs (and elsewhere) as an escape for tab.
|
\\t is recognized in REs (and elswhere) as an escape for tab.
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
In an RE, + calls for 1..n repeats of the previous pattern.
|
In an RE, + calls for 1..n repeats of the previous pattern.
|
||||||
.P
|
.P
|
||||||
The following are completely new features:
|
The following are completely new features:
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
The
|
The l command (list, undocumented and weaker in BSD)
|
||||||
.B l
|
|
||||||
command (list, undocumented and weaker in BSD)
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
The 'L' command (hex dump).
|
||||||
The
|
|
||||||
.B W
|
|
||||||
command (write first line of pattern space to file).
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
The
|
The W command (write first line of pattern space to file).
|
||||||
.B T
|
|
||||||
command (branch on last substitute failed).
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\(bu
|
*
|
||||||
|
The T command (branch on last substitute failed).
|
||||||
|
.TP 5
|
||||||
|
*
|
||||||
Trailing comments are now allowed on command lines.
|
Trailing comments are now allowed on command lines.
|
||||||
.P
|
.P
|
||||||
In addition,
|
In addition, sed's error messages have been made more specific and
|
||||||
.BR sed "'s"
|
informative.
|
||||||
error messages have been made more specific and informative.
|
|
||||||
.P
|
.P
|
||||||
The implementation is also significantly smaller and faster than
|
The implementation is also significantly smaller and faster than
|
||||||
BSD 4.1 sed. It uses only the standard I/O library and exit(3).
|
BSD 4.1 sed. It uses only the standard I/O library and exit(3).
|
||||||
.P
|
|
||||||
.SH NOTE
|
|
||||||
.P
|
|
||||||
This is a freeware component of the GNU and MINIX operating systems.
|
|
||||||
The user is hereby granted permission to use, modify, reproduce and
|
|
||||||
distribute it subject to the following conditions:
|
|
||||||
.P
|
|
||||||
1. The authorship notice appearing in each source file may not be
|
|
||||||
altered or deleted.
|
|
||||||
.P
|
|
||||||
2. The object form may not be distributed without source.
|
|
||||||
.P
|
.P
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.P
|
.P
|
||||||
.BR cgrep (1),
|
ed(1), grep(1), awk(1), lex(1), regexp(5)
|
||||||
.BR fgrep (1),
|
|
||||||
.BR grep (1),
|
|
||||||
.BR lex (1),
|
|
||||||
.BR regexp (5),
|
|
||||||
.BR awk (9).
|
|
||||||
.P
|
.P
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
Eric S. Raymond <esr@snark.thyrsus.com>
|
Eric S. Raymond <esr@snark.thyrsus.com> and Rene Rebe <rene@exactcode.de>.
|
||||||
|
This program is distributed under the GPL.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue