/Sebastopol/s/CA/California/g
An input line consisting of "Sebastopol, CA" would match the address
and the substitute command would be applied, changing it to
"Sebastopol, California." A line consisting of "San Francisco, CA"
would not be matched and the substitution would not be applied.
A sed command can specify zero, one, or two addresses. An address can
be a regular expression describing a pattern, a line number, or a
line addressing symbol.
d
When a line number is supplied as an address, the command affects only
that line. For instance, the following example deletes only the first
line:
1d
The line number refers to an internal line count maintained by sed.
This counter is not reset for multiple input files. Thus, no matter
how many files were specified as input, there is only one line 1 in
the input stream.
$d
The $ symbol should not be confused with the $ used
in regular expressions, which means the end of the line.
When a regular expression is supplied as an address, the command
affects only the lines matching that pattern.
The regular expression must be enclosed by slashes (/).
The following delete command
/^$/d
deletes only blank lines. All other lines are passed through
untouched.
If you supply two addresses, then you specify a range of lines over
which the command is executed. The following example shows hows to
delete all lines blocked by a pair of macros, in this case, .TS
and .TE, that mark tbl input.
/^\.TS/,/^\.TE/d
It deletes all lines beginning with the line matched by the first
pattern and up to and including the line matched by the second
pattern. Lines outside this range are not affected. The following
command deletes from line 50 to the last line in the file:
50,$d
You can mix a line address and a pattern address:
1,/^$/d
This example deletes from the first line up to the first blank line,
which, for instance, will delete a mailer header from an Internet mail
message that you have saved in a file.
You can think of the first address as enabling the action and the
second address as disabling it. Sed has no way of looking ahead to
determine if the second match will be made. The action will be
applied to lines once the first match is made. The command will be
applied to all subsequent lines until the second
match is made. In the previous example, if the file did not contain a
blank line, then all lines would be deleted.
An exclamation mark (!) following an address reverses the sense of the
match. For instance, the following script deletes all lines
except those inside tbl input:
/^\.TS/,/^\.TE/!d
This script, in effect, extracts tbl input from a source file.