suckless unix tools
git clone git://
Log | Files | Refs | README | LICENSE

commit e9962b73f6ee91a36fb494ea6197c82f42cdfaa1
parent 58362f23451f0dc9225fc97da3cfb187fe7163ac
Author: Evan Gates <>
Date:   Tue Aug  4 08:57:40 -0700

add preliminary sed(1) manpage

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.