sed: sed script overview

 
 3.1 'sed' script overview
 =========================
 
 A 'sed' program consists of one or more 'sed' commands, passed in by one
 or more of the '-e', '-f', '--expression', and '--file' options, or the
 first non-option argument if zero of these options are used.  This
 document will refer to "the" 'sed' script; this is understood to mean
 the in-order concatenation of all of the SCRIPTs and SCRIPT-FILEs passed
 in.  ⇒Overview.
 
    'sed' commands follow this syntax:
 
      [addr]X[options]
 
    X is a single-letter 'sed' command.  '[addr]' is an optional line
 address.  If '[addr]' is specified, the command X will be executed only
 on the matched lines.  '[addr]' can be a single line number, a regular
 expression, or a range of lines (⇒sed addresses).  Additional
 '[options]' are used for some 'sed' commands.
 
    The following example deletes lines 30 to 35 in the input.  '30,35'
 is an address range.  'd' is the delete command:
 
      sed '30,35d' input.txt > output.txt
 
    The following example prints all input until a line starting with the
 word 'foo' is found.  If such line is found, 'sed' will terminate with
 exit status 42.  If such line was not found (and no other error
 occurred), 'sed' will exit with status 0.  '/^foo/' is a
 regular-expression address.  'q' is the quit command.  '42' is the
 command option.
 
      sed '/^foo/q42' input.txt > output.txt
 
    Commands within a SCRIPT or SCRIPT-FILE can be separated by
 semicolons (';') or newlines (ASCII 10).  Multiple scripts can be
 specified with '-e' or '-f' options.
 
    The following examples are all equivalent.  They perform two 'sed'
 operations: deleting any lines matching the regular expression '/^foo/',
 and replacing all occurrences of the string 'hello' with 'world':
 
      sed '/^foo/d ; s/hello/world/' input.txt > output.txt
 
      sed -e '/^foo/d' -e 's/hello/world/' input.txt > output.txt
 
      echo '/^foo/d' > script.sed
      echo 's/hello/world/' >> script.sed
      sed -f script.sed input.txt > output.txt
 
      echo 's/hello/world/' > script2.sed
      sed -e '/^foo/d' -f script2.sed input.txt > output.txt
 
    Commands 'a', 'c', 'i', due to their syntax, cannot be followed by
 semicolons working as command separators and thus should be terminated
 with newlines or be placed at the end of a SCRIPT or SCRIPT-FILE.
 Commands can also be preceded with optional non-significant whitespace
 characters.  ⇒Multiple commands syntax.