Sed commands have the general form:
[
address][,address][!]command[arguments]
Sed commands consist of addresses and editing commands.
commands consist of a single letter or symbol; they are
described later, alphabetically and by group.
arguments include the label supplied to b or t, the
filename supplied to r or w, and the substitution flags
for s.
addresses are described below.
A sed command can specify zero, one, or two addresses.  
An address can be a line number, the symbol $ (for last line),
or a regular expression enclosed in slashes (/pattern/).
Regular expressions are described in Section 6.  Additionally, \n can 
be used to match any newline in the
pattern space (resulting from the N command), but not the
newline at the end of the pattern space.
| If the command specifies: | Then the command is applied to: | 
|---|---|
| No address | Each input line | 
| One address | Any line matching the address. Some commands accept only one address: a, i, r, q, and =. | 
| Two comma-separated addresses | First matching line and all succeeding lines up to and including a line matching the second address. | 
| An address followed by ! | All lines that do not match the address. | 
| s/xx/yy/g | Substitute on all lines (all occurrences). | 
| /BSD/d | Delete lines containing BSD. | 
| /^BEGIN/,/^END/p | Print between BEGINandEND, inclusive. | 
| /SAVE/!d | Delete any line that doesn't contain SAVE. | 
| /BEGIN/,/END/!s/xx/yy/g | Substitute on all lines, except between BEGINandEND. | 
Braces ({}) are used in sed to nest one address inside another or to apply multiple commands at the same address.
[/pattern/][,/pattern/]{command1 command2}
The opening curly brace must end a line, and the closing curly brace must be on a line by itself. Be sure there are no blank spaces after the braces.