Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sed(1) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

awk(1)

ed(1)

grep(1)



sed(1)                   USER COMMANDS                     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 identi-
               cal 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



                                                                1





sed(1)                   USER COMMANDS                     sed(1)



               line  corresponding  to  the  first   address   is
               selected.)   Thereafter  the  process is repeated,
               looking again for the first address.

     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  pat-
               tern space.

     (2)h      Replace the contents of the hold space by the con-
               tents 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





sed(1)                   USER COMMANDS                     sed(1)



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

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




                                                                3





sed(1)                   USER COMMANDS                     sed(1)



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

     (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 out-
               put 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).











                                                                4



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