Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sed(1) — DG/UX 4.30

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

awk(1)

ed(1)

grep(1)



     sed(1)                     DG/UX 4.30                      sed(1)



     NAME
          sed - stream editor

     SYNOPSIS
          sed [ -n ] [ -e script ] [ -f sfile ] [ files ]

     DESCRIPTION
          Sed copies the named files (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.  (If the second address
                    is a number less than or equal to the line number
                    first selected, only one line is selected.)



     Licensed material--property of copyright holder(s)         Page 1





     sed(1)                     DG/UX 4.30                      sed(1)



                    Thereafter the process is repeated, looking again
                    for the first address.

          You can apply editing commands only to non-selected pattern
          spaces with the negation function ! (below).

          The following list of functions gives the maximum number of
          permissible addresses for each function 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 label.  If label
                    is empty, branch to the end of the script.

          (2)c\
          text      Change.  Delete the pattern space.  With 0 or 1
                    address or at the end of a 2-address range, 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.




     Licensed material--property of copyright holder(s)         Page 2





     sed(1)                     DG/UX 4.30                      sed(1)



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

          (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.

          (1)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
                    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 to  512.  Substitute for just the
                              nth occurrence (on the line) of the
                              regular expression.

                         g    Global.  Substitute for all
                              nonoverlapping instances of the regular
                              expression, not 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



     Licensed material--property of copyright holder(s)         Page 3





     sed(1)                     DG/UX 4.30                      sed(1)



                    script.

          (2)w wfile
                    Write.  Append the pattern space to wfile.

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

          (2)y/string1/string2/
                    Transform.  Replace all occurrences of characters
                    in string1 with the corresponding character in
                    string2.  The lengths of string1 and string2 must
                    be equal.

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

          (0): label
                    Takes no action; 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 the first
                    line of a script file, then that entire line is
                    treated as a comment, with one exception.  If 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).














     Licensed material--property of copyright holder(s)         Page 4



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