34.2. Two Things You Must Know About sed
If you are already familiar with global edits
in other editors like vi or ex,
you know most of what you need to know to begin to use
sed. There are two things, though, that make it
very different:
-
It
doesn't change the file it edits. It is just what
its name says: a "stream
editor" -- designed to take
a stream of data from standard input
(Section 43.1) or a file, transform it, and pass it
to standard output (Section 43.1). If you want to edit a file, you have to
write a shell wrapper (Section 34.4) to capture standard output and write it back
into your original file.
-
sed
commands are implicitly global. In an editor like
ex, the command:
s/old/new/
will change "old" to
"new" only on the current line
unless you use the global command or various addressing symbols to
apply it to additional lines. In sed, exactly the
opposite is true. A command like the one above will be applied to all
lines in a file. Addressing symbols are used to
limit the extent of the match. (However, like
ex, only the first occurrence of a pattern on a
given line will be changed unless the g flag is
added to the end of the substitution command.)
If all you want to do is make simple substitutions,
you're ready to go. If you want to do more than
that, sed has some unique and powerful commands.
This chapter makes no attempt to cover everything there is to know
about sed. For the most part, this chapter simply
contains advice on working with sed and extended
explanations of how to use some of its more difficult commands.
-- TOR
| | | 34. The sed Stream Editor | | 34.3. Invoking sed |
Copyright © 2003 O'Reilly & Associates. All rights reserved.
|
|