


SED(1)                    User Commands                     SED(1)



NAME
     sed - stream editor

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

DESCRIPTION
     Sed copies the named files or the standard input to its
     standard output, while performing certain operations speci-
     fied in the command line script or in the file scriptfile.
     If no filenames are specified, the default input is the
     standard input.

     Sed cyclically reads in input lines and places them in the
     pattern space.  The pattern space is selected by some or all
     of the commands in the script, and acted upon by these com-
     mands. The pattern space is then written to the output, and
     the next input is read.

     The script (on the command line or in the script file) is
     composed of one or more lines that have the following form:

     [ range ] function [ arguments ]

     The range refers to either a line address range or a regular
     expression in the style of ed(1). The range selects which
     input lines the function should act upon. If the range is
     omitted, all input lines are selected.

     The line address is calculated sequentially from the first
     file to last, in order. A line address range may be either a
     single line number or two line numbers separated by a comma.
     A single number selects that line number to act upon, and
     two line numbers separated by a comma inclusively select all
     lines between those two numbers.

     Regular expressions in sed differ from ed(1) regular expres-
     sions in that the escape sequence `\n' matches a newline
     embedded in the pattern space.  A $ character may also be
     used to select the last line of input.

     The following list of sed functions are preceded by a number
     indicating the maximum amount of line numbers valid in the
     range of the function. A (1) would indicate that the func-
     tion can only take effect after a certain line number and
     not a range of line numbers, while a (2) would indicate that
     either one line number or two are valid for the function.

     When a function takes a text argument, a newline in the text
     may be escaped by placing a `\' character before it, allow-
     ing multiline texts.




GNU Project                1989 May 26                          1






SED(1)                    User Commands                     SED(1)



     Empty commands are ignored.

     A wfile or rfile argument to a function must be at the end
     of a command line, and there must be exactly one space
     between the command and the file name argument. There can be
     at most 10 wfile and rfile arguments.  All wfile or rfile
     arguments are created before any input lines are read.

     (1)a\
     text
          Append the text to the output after the current pattern
          space.

     (2)b label
          Branch to the label defined with the `:' command. An
          empty label implies a branch to the end of the script.

     (2)c\
     text
          Change text.  The pattern space is unconditionally
          deleted and the text is written to the output following
          the range.

     (2)d Delete the pattern space.

     (2)D Delete the initial segment of the pattern space up to
          and including the first newline.  (the pattern space
          may contain more than one line of text -- see the `N'
          command)

     (2)g Overwrite the pattern space with the contents of the
          hold space.

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

     (2)h Hold the pattern space. The pattern space is copied
          into the hold space.

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

     (1)i\
     text
          Insert.  Write text to the output.

     (2)n Flush the pattern space to the output and read the next
          input line into the pattern space.

     (2)N Append the next line of input to the pattern space,
          inserting a newline character between them.





GNU Project                1989 May 26                          2






SED(1)                    User Commands                     SED(1)



     (2)p Print.  Write a copy of the pattern space to the out-
          put.

     (2)P Write a copy of the pattern space up to and including
          the first newline to the output.

     (1)q Quit and do not start a new cycle.

     (2)r rfile
          Read the contents of rfile and write them to the out-
          put.

     (2)s/regular expression/replacement/flags
          Search for the regular expression in the pattern space
          and replace it with the replacement string.  Any char-
          acter may be used as a delimiter instead of the `/'.
          The flags argument may be any number of the following:

          g    Globally substitute the replacement for the regu-
               lar expression. Normally, only the first match is
               found, but g forces matching of all occurances.

          p    Print the pattern space if a replacement was made.

          w wfile
               Write the pattern space to the end of wfile if a
               replacement was made. This must be the last flag
               argument if it is used.

     (2)t label
          Test.  If a substitution was made since the last time
          an input line was read into the pattern space, or since
          the last `t' command, command branches to the label. An
          empty label means to branch to the end of the script.

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

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

     (2)y/string1/string2/
          Yank all characters in string1 and replace them with
          the corresponding characters in string2, which should
          be of equal length as string1.

     (2)! function
          Apply the function to those lines not selected by the
          command.

     (0): label
          Declare a label for `b' and `t' commands to branch to.




GNU Project                1989 May 26                          3






SED(1)                    User Commands                     SED(1)



     (1)= Write the current line number to the output.

     (2){ Perform multiple commands on the range. The `{' charac-
          ter is followed by one or more commands to perform on
          the pattern space. A '}' character terminates the list
          of commands.

OPTIONS
     -n      suppress the default output

     -e      indicates that the next argument is a script. Useful
             for scripts starting with a - character.

     -f      indicates that the following argument is a file con-
             taining a script of commands to Sed.

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

AVAILABILITY
     GNU sed is free; anyone may redistribute copies of sed to
     anyone under the terms stated in the GNU General Public
     License, a copy of which may be found in each copy of GNU
     Emacs.  See also the comment at the beginning of the source
     code file sed.c.

     Copies of GNU sed may sometimes be received packaged with
     distributions of Unix systems, but it is never included in
     the scope of any license covering those systems.  Such
     inclusion violates the terms on which distribution is per-
     mitted.  In fact, the primary purpose of the General Public
     License is to prohibit anyone from attaching any other res-
     trictions to redistribution of any of the Free Software
     Foundation programs.





















GNU Project                1989 May 26                          4



