Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

awk(1)

ed(1)

grep(1)





   sed(1)                     (Essential Utilities)                     sed(1)


   NAME
         sed - stream editor

   SYNOPSIS
         sed [-n] [-e script] [-f sfile] [file ...]

   DESCRIPTION
         sed copies the named file (standard input default) to the standard
         output, edited according to a script of commands.  The -f option
         causes the script to be taken from file sfile; these options
         accumulate.  If there is just one -e option and no -f options, the
         flag -e may be omitted.  The -n option suppresses the default output.
         A script consists of editing commands, one per line, of the following
         form:

               [ address [ , address ] ] function [ arguments ]

         In normal operation, sed cyclically copies a line of input into a
         pattern space (unless there is something left after a D command),
         applies in sequence all commands whose addresses select that pattern
         space, and at the end of the script copies the pattern space to the
         standard output (except under -n) and deletes the pattern space.

         Some of the commands use a hold space to save all or part of the
         pattern space for subsequent retrieval.

         An address is either a decimal number that counts input lines
         cumulatively across files, a $ that addresses the last line of input,
         or a context address, i.e., a /regular expression/ in the style of
         ed(1) modified thus:

               In a context address, the construction \?regular expression?,
                     where ?  is any character, is identical to /regular
                     expression/.  Note that in the context address
                     \xabc\xdefx, the second x stands for itself, so that the
                     regular expression is abcxdef.
               The escape sequence \n matches a new-line embedded in the
                     pattern space.
               A period (.)  matches any character except the terminal new-
                     line of the pattern space.
               A command line with no addresses selects every pattern space.
               A command line with one address selects each pattern space that
                     matches the address.
               A command line with two addresses selects the inclusive range
                     from the first pattern space that matches the first
                     address through the next pattern space that matches the
                     second address.  (If the second address is a number less
                     than or equal to the line number selected by the first
                     address, only the line corresponding to the first address
                     is selected.)  Thereafter the process is repeated,
                     looking again for the first address.


   7/91                                                                 Page 1









   sed(1)                     (Essential Utilities)                     sed(1)


         Editing commands can be applied only to non-selected pattern spaces
         by use of the negation function !  (below).

         In the following list of functions the maximum number of permissible
         addresses for each function is indicated in parentheses.

         The text argument consists of one or more lines, all but the last of
         which end with \ to hide the new-line.  Backslashes in text are
         treated like backslashes in the replacement string of an s command,
         and may be used to protect initial blanks and tabs against the
         stripping that is done on every script line.  The rfile or wfile
         argument must terminate the command line and must be preceded by
         exactly one blank.  Each wfile is created before processing begins.
         There can be at most 10 distinct wfile arguments.

         (1)a\
         text      Append.  Place text on the output before reading the next
                   input line.

         (2)b label
                   Branch to the :  command bearing the label.  If label is
                   empty, branch to the end of the script.

         (2)c\
         text      Change.  Delete the pattern space.  Place text on the
                   output.  Start the next cycle.

         (2)d      Delete the pattern space.  Start the next cycle.

         (2)D      Delete the initial segment of the pattern space through the
                   first new-line.  Start the next cycle.

         (2)g      Replace the contents of the pattern space by the contents
                   of the hold space.

         (2)G      Append the contents of the hold space to the pattern space.

         (2)h      Replace the contents of the hold space by the contents of
                   the pattern space.

         (2)H      Append the contents of the pattern space to the hold space.

         (1)i\
         text      Insert.  Place text on the standard output.

         (2)l      List the pattern space on the standard output in an
                   unambiguous form.  Non-printable characters are displayed
                   in octal notation and long lines are folded.





   Page 2                                                                 7/91









   sed(1)                     (Essential Utilities)                     sed(1)


         (2)n      Copy the pattern space to the standard output.  Replace the
                   pattern space with the next line of input.

         (2)N      Append the next line of input to the pattern space with an
                   embedded new-line.  (The current line number changes.)

         (2)p      Print.  Copy the pattern space to the standard output.

         (2)P      Copy the initial segment of the pattern space through the
                   first new-line to the standard output.

         (1)q      Quit.  Branch to the end of the script.  Do not start a new
                   cycle.

         (2)r rfile
                   Read the contents of rfile.  Place them on the output
                   before reading the next input line.

         (2)s/regular expression/replacement/flags
                   Substitute the replacement string for instances of the
                   regular expression in the pattern space.  Any character may
                   be used instead of /.  For a fuller description see ed(1).
                   flags is zero or more of:

                   n       n= 1 - 512.  Substitute for just the nth occurrence
                           of the regular expression.

                   g       Global.  Substitute for all nonoverlapping
                           instances of the regular expression rather than
                           just the first one.

                   p       Print the pattern space if a replacement was made.

                   w wfile Write.  Append the pattern space to wfile if a
                           replacement was made.

         (2)t label
                   Test.  Branch to the :  command bearing the label if any
                   substitutions have been made since the most recent reading
                   of an input line or execution of a t.  If label is empty,
                   branch to the end of the script.

         (2)w wfile
                   Write.  Append the pattern space to wfile.  The first
                   occurrence of w will cause wfile to be cleared.  Subsequent
                   invocations of w will append.  Each time the sed command is
                   used, wfile is overwritten.

         (2)x      Exchange the contents of the pattern and hold spaces.




   7/91                                                                 Page 3









   sed(1)                     (Essential Utilities)                     sed(1)


         (2)y/string1/string2/
                   Transform.  Replace all occurrences of characters in
                   string1 with the corresponding characters in string2.
                   string1 and string2 must have the same number of
                   characters.

         (2)! function
                   Don't.  Apply the function (or group, if function is {)
                   only to lines not selected by the address(es).

         (0): label
                   This command does nothing; it bears a label for b and t
                   commands to branch to.

         (1)=      Place the current line number on the standard output as a
                   line.

         (2){      Execute the following commands through a matching } only
                   when the pattern space is selected.

         (0)       An empty command is ignored.

         (0)#      If a # appears as the first character on a line of a script
                   file, then that entire line is treated as a comment, with
                   one exception:  if a # appears on the first line and the
                   character after the # is an n, then the default output will
                   be suppressed.  The rest of the line after #n is also
                   ignored.  A script file must contain at least one non-
                   comment line.

   SEE ALSO
         awk(1), ed(1), grep(1).





















   Page 4                                                                 7/91





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026