sed: Addresses overview

 
 4.1 Addresses overview
 ======================
 
 Addresses determine on which line(s) the 'sed' command will be executed.
 The following command replaces the word 'hello' with 'world' only on
 line 144:
 
      sed '144s/hello/world/' input.txt > output.txt
 
    If no addresses are given, the command is performed on all lines.
 The following command replaces the word 'hello' with 'world' on all
 lines in the input file:
 
      sed 's/hello/world/' input.txt > output.txt
 
    Addresses can contain regular expressions to match lines based on
 content instead of line numbers.  The following command replaces the
 word 'hello' with 'world' only in lines containing the word 'apple':
 
      sed '/apple/s/hello/world/' input.txt > output.txt
 
    An address range is specified with two addresses separated by a comma
 (',').  Addresses can be numeric, regular expressions, or a mix of both.
 The following command replaces the word 'hello' with 'world' only in
 lines 4 to 17 (inclusive):
 
      sed '4,17s/hello/world/' input.txt > output.txt
 
    Appending the '!' character to the end of an address specification
 (before the command letter) negates the sense of the match.  That is, if
 the '!' character follows an address or an address range, then only
 lines which do _not_ match the addresses will be selected.  The
 following command replaces the word 'hello' with 'world' only in lines
 _not_ containing the word 'apple':
 
      sed '/apple/!s/hello/world/' input.txt > output.txt
 
    The following command replaces the word 'hello' with 'world' only in
 lines 1 to 3 and 18 till the last line of the input file (i.e.
 excluding lines 4 to 17):
 
      sed '4,17!s/hello/world/' input.txt > output.txt