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)                              CLIX                              sed(1)



  NAME

    sed - Runs a stream editor

  SYNOPSIS

    sed [-e cmd ... ] [-f sfile] [-n] [file]

  FLAGS

    Specifies a sed editing command line cmd.  Not needed if specifying only
    one editing command line and if there are no -f flags present.  Causes a
    sed script to be taken from file sfile.  These flags accumulate.
    Suppresses the default output, and displays only those lines specified by
    the p command or the p flag of the s command.

  DESCRIPTION

    The sed command copies the named files from stdin (default) to stdout,
    edited according to a script of commands.  A script consists of one or
    more sed editing command lines (cmd), one per line, of the following form:

    [address[, address]] command [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 stdout (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, that is, a /regular expression/ in the style of ed, 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 newline embedded in the pattern space.

    ⊕  A dot . matches any character except the terminal newline 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



  2/94 - Intergraph Corporation                                              1






  sed(1)                              CLIX                              sed(1)



       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.)  Thereafter the process is repeated, looking again
       for the first address.

    Editing commands can be applied only to nonselected pattern spaces by use
    of the negation command ! (below).

    In the following list of commands, the maximum number of permissible
    addresses for each command is indicated in parentheses.

    The text argument consists of one or more lines, all but the last of which
    end with \ to hide the newline.  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.

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

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

    c\
    text   (2) 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.

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

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

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

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

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

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



  2                                              Intergraph Corporation - 2/94






  sed(1)                              CLIX                              sed(1)



    i\
    text   (1) Insert.  Place text on stdout.

    l      (2) List the pattern space on stdout in an unambiguous form.
           Nonprintable characters are displayed in octal notation and long
           lines are folded.

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

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

    p      (2) Print.  Copy the pattern space to stdout.

    P      (2) Copy the initial segment of the pattern space through the first
           newline to stdout.

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

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

    s/regular expression/replacement/flags
           (2) Substitute the replacement string for instances of the regular
           expression in the pattern space.  Any character may be used instead
           of /.  (For a more detailed 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.

    t label
           (2) 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 command.  If label is empty, branch
           to the end of the script.

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




  2/94 - Intergraph Corporation                                              3






  sed(1)                              CLIX                              sed(1)



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

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

    ! command
           (2) Do not.  Apply the command (or group, if command is {) only to
           lines not selected by the address(es).

    : label
           (0) This command does nothing.  It bears a label to which the b and
           t commands branch.

    =      (1) Place the current line number on stdout 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
           noncommented line.

  EXAMPLES

    1.  The following performs a sed command command on the foo file:

        sed 'command' foo


    2.  The following executes the commands in a sed script, contained in the
        sedscript file, on the foo and foobar files:

        sed -f sedscript foo foobar


  NOTES

    An input line to sed is limited to a maximum of 4,000 characters.

    The sed command does not recognize patterns on the last line of a file if
    the line does not end with a newline character.

  DIAGNOSTICS




  4                                              Intergraph Corporation - 2/94






  sed(1)                              CLIX                              sed(1)



    Can't open file
           One of the files given in the command line does not have read
           permission or does not exist.

    Unrecognized command: cmd
           A command given in the sed script was not valid.

    sed: command garbled: cmd
           The command given in the sed script did not use correct syntax.

  EXIT VALUES

    The sed command exits with a value of 0 if successful and a value of 2 if
    an error occurs.

  RELATED INFORMATION

    Commands:  awk(1), ed(1), grep(1)




































  2/94 - Intergraph Corporation                                              5




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