143 lines
3.9 KiB
Groff
143 lines
3.9 KiB
Groff
.Dd August 4, 2015
|
|
.Dt SED 1
|
|
.Os sbase
|
|
.Sh NAME
|
|
.Nm sed
|
|
.Nd stream editor
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl nrE
|
|
.Ar script
|
|
.Op Ar file ...
|
|
.Nm
|
|
.Op Fl nrE
|
|
.Fl e Ar script
|
|
.Op Fl e Ar script
|
|
.Ar ...
|
|
.Op Fl f Ar scriptfile
|
|
.Ar ...
|
|
.Op Ar file ...
|
|
.Nm
|
|
.Op Fl nrE
|
|
.Op Fl e Ar script
|
|
.Ar ...
|
|
.Fl f Ar scriptfile
|
|
.Op Fl f Ar scriptfile
|
|
.Ar ...
|
|
.Op Ar file ...
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
reads line oriented output from
|
|
.Ar file
|
|
or stdin, applies the editing commands supplied by
|
|
.Ar script
|
|
or
|
|
.Ar scriptfile
|
|
and writes the edited stream to stdout.
|
|
.Sh OPTIONS
|
|
.Bl -tag -width Ds
|
|
.It Fl n
|
|
Suppress default printing at the end of each cycle.
|
|
.It Fl r E
|
|
Use extended regular expressions
|
|
.It Fl e Ar script
|
|
Append
|
|
.Ar script
|
|
to the list of editing commands.
|
|
.It Fl f Ar scriptfile
|
|
Append the commands from
|
|
.Ar scriptfile
|
|
to the list of editing commands.
|
|
.El
|
|
.Sh EXTENDED DESCRIPTION
|
|
Editing commands take the form
|
|
.Pp
|
|
[address[,address]]function
|
|
.Ss Addresses
|
|
Addresses are either blank, a positive decimal integer denoting a line
|
|
number, the character '$' denoting the last line of input, or a regular
|
|
expression. A command with no addresses matches every line, one address
|
|
matches individual lines, and two addresses matches a range of lines
|
|
from the first to the second address inclusive.
|
|
.Ss Functions
|
|
.Bl -tag -width Ds
|
|
.It Ar a Op Ar text
|
|
Append text to output after end of current cycle.
|
|
.It Ar b Op Ar label
|
|
Branch to label. If no label is provided branch to end of script.
|
|
.It Ar c Op Ar text
|
|
Change. Delete addressed range and output text after end of current cycle.
|
|
.It Ar d
|
|
Delete pattern space and begin next cycle.
|
|
.It Ar D
|
|
Delete pattern space up to and including first newline and begin new
|
|
cycle without reading input. If there is no newline, behave like d.
|
|
.It Ar g
|
|
Get. Replace the pattern space with the hold space.
|
|
.It Ar G
|
|
Get. Append a newline and the hold space to the pattern space.
|
|
.It Ar h
|
|
Hold. Replace the hold space with the pattern space.
|
|
.It Ar H
|
|
Hold. Append a newline and the pattern space to the hold space.
|
|
.It Ar i Op Ar text
|
|
Insert text in output.
|
|
.It Ar l
|
|
List? Write the pattern space replacing known non printing characters with
|
|
backslash escaped versions (\\\\, \\a, \\b, \\f, \\r, \\t, \\v). Print
|
|
bad UTF-8 sequences as \\ooo where ooo is a three digit octal number. Mark
|
|
end of lines with '$'.
|
|
.It Ar n
|
|
Next. Write pattern space (unless
|
|
.Fl n ) ,
|
|
read next line into pattern space, and continue current cycle. If there
|
|
is no next line, quit.
|
|
.It Ar N
|
|
Next. Read next line, append newline and next line to pattern space,
|
|
and continue cycle. If there is no next line, quit without printing
|
|
current pattern space.
|
|
.It Ar p
|
|
Print current pattern space.
|
|
.It Ar P
|
|
Print current pattern space up to first newline.
|
|
.It Ar q
|
|
Quit.
|
|
.It Ar r file
|
|
Read file and write contents to output.
|
|
.It Ar s/re/text/flags
|
|
Find occurences of regular expression re in the pattern space and replace
|
|
with text. A '&' in text is replaced with the entire match. A \\d where
|
|
d is a decimal digit 1-9 is replaced with the corresponding match group
|
|
from the regular expression. \\n represents a newline in both the regular
|
|
expression and replacement text. A literal newline in the replacement
|
|
text must be preceded by a \\.
|
|
.Pp
|
|
Flags are
|
|
.Bl -tag -width Ds
|
|
.It Ar n
|
|
A positive decimal number denoting which match in the pattern space
|
|
to replace.
|
|
.It Ar g
|
|
Global. Replace all matches in the pattern space.
|
|
.It Ar p
|
|
Print the pattern if a replacement was made.
|
|
.It Ar w file
|
|
Write the pattern space to file if a replacement was made.
|
|
.El
|
|
.It Ar t Op Ar label
|
|
Test. Branch to corresponding labelif a substitution has been made since
|
|
the last line was read or last t command was executed. If no label is
|
|
provided branch to end of script.
|
|
.It Ar w file
|
|
Write pattern space to file.
|
|
.It Ar x
|
|
Exchange hold space and pattern space.
|
|
.It Ar y/set1/set2/
|
|
Replace each occurrence of a character from set 1 with the corresponding
|
|
character from set 2.
|
|
.It Ar :label
|
|
Create a label for b and t commands.
|
|
.It Ar =
|
|
Write current input line number to output.
|
|
.El
|