commit 0bd0c246a5fc7926eb463c7d7c7bb4c9bc73bef7
parent ac62259d242d7e54a2006140e863e9851fedcccb
Author: Evan Gates <evan.gates@gmail.com>
Date: Tue, 4 Aug 2015 08:57:40 -0700
add preliminary sed(1) manpage
Diffstat:
M | sed.1 | | | 139 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- |
1 file changed, 137 insertions(+), 2 deletions(-)
diff --git a/sed.1 b/sed.1
@@ -1,6 +1,141 @@
-.Dd February 28, 2015
+.Dd August 4, 2015
.Dt SED 1
.Os sbase
.Sh NAME
.Nm sed
-.Nd TODO
+.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.