Why Line Editors Aren't Dinosaurs
Writing Editing Scripts
Line Addressing
Useful ex Commands
Running Editing Scripts Within vi
Change Many Files by Editing Just One
ed/ex Batch Edits: A Typical Example
Batch Editing Gotcha: Editors Fail on Big Files
patch: Generalized Updating of Files That Differ
Quick Reference: awk
Versions of awk
In the "old days," when programmers worked on printing terminals, editing was done one line at a time. Editors that let you move a cursor around the screen to select text to edit hadn't yet been invented, because there weren't any screens to look at text on!
With ever more advanced WYSIWYG (What You See Is What You Get) word processors and editing programs, it's easy for novices to think of line editors as a bizarre relic. Perhaps they are -- but if so, they are a relic of extraordinary power.
You see, line editors lend themselves to scripting -- the ability to write what in effect are editing programs that can be applied over and over to different files.
When we talk about "batch editing" or scripts, here are some of the programs you might use:
ex supports a superset of ed commands; it is widely used from within vi, which is the ex "visual" or "screen" mode.
sed (Section 34.1) is an editor that can only be run with scripts or by entering a few short commands as command-line arguments; while it has many similar commands, it has some important differences (Section 34.2) from ed and ex.
awk (Section 20.10) is a great way to pull apart a line of text into a sequence of elements. Used frequently with sed.
patch (Section 20.9) is a specialized editor designed to apply editing scripts created with diff (Section 11.1). You can do this with ed or ex as well, but patch is especially clever at it.
Of course, editing is a continuum, and beyond sed and awk (Section 20.10) lie more complete programming languages like perl (Section 41.1) and python (Section 42.1) that are very adept at manipulating text.
-- TOR
Copyright © 2003 O'Reilly & Associates. All rights reserved.