Hands-off editing with sed, Part 1

October 31, 2001, 05:38 PM —  Unix Insider — 

With the sed utility (otherwise known as the Unix stream editor), you can alter files without opening them in an interactive editor. Instead, you use sed to specify a series of rules (edits) or transformations that you want applied to lines of text, then apply them to your file.

sed is not suitable as a general purpose editor, and is best used to apply a set of modifications to text, particularly if you're managing more than one file. If you want to run a series of once-only edits, you are better off directly editing a file using vi or Emacs, as using sed will take much longer. But if you need to make systematic changes across multiple files, then sed is your best bet.

For example, suppose you've written a book using vi. In it, your heroine is named Brunhilda Mathewhowsenstern, to whom you occasionally apply the nickname Brunie. You have already saved each of the book's 66 chapters as separate text files -- chap01.txt, chap02.txt, etc. -- and have just received the go-ahead from your publisher when, horror of horrors, a real person named Brunhilda Mathewhowsenstern shows up and threatens a suit if you use her name in the book. After considerable research you discover that the name Mathilda Leapfrogandrun is unclaimed by any litigious miscreants, so you resolve to change your heroine's name to this, with the new nickname Mattie replacing Brunie. You might think that you have a lot of work ahead of you, since you have to open all 66 files in vi or some other editor to make this fix.

At this point, the real heroine, the sed utility, rides to the rescue, allowing you to devise a script of editing actions to be applied one after another to each of the 66 chapters. You will be able to effect these changes without opening a single file. The script will apply three rules:

  1. Locate all instances of "Brunhilda" and change them to "Mathilda"
  2. Locate all instances of "Mathewhowsenstern" and change them to "Leapfrogandrun"
  3. Locate all instances of "Brunie" and change them to "Mattie"

How will all this work? Let's cover some basic features of the sed utility to find out.

Some sed basics

We'll start our exploration of sed with the following command:

sed [options] script input_file

Here, script is a set of actions to perform on a file named input_file. The output of sed is sent to standard output; in order to save the result of the sed actions you need to redirect this output:

sed [options] script input_file >output_file

Do not redirect the output to the file you're editing or you'll clobber the file.

sed can also be used on an input stream. The named input_file is optional; if unspecified, sed will take its input from the keyboard. The command

sed script >output_file

will take everything typed on the keyboard, apply it to the script, and place the result in output_file. This also provides a handy mechanism

I like it!
Post a comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
Resources
White Paper

Symantec Backup Exec 12 and Backup Exec System Recovery 8 deliver industry leading Windows data protection and system recovery. Download this whitepaper to find out the top reasons to upgrade and how to get continuous data protection and complete system recovery.

Webcast

Data and system loss — from a hard drive failure, malicious attack, natural disaster, or simple human error — can happen anytime. Don’t leave your business vulnerable. Make sure you have a secure recovery strategy in place. Symantec's latest backup and system recovery technology can efficiently restore critical applications, individual emails and documents and even restore your entire system in minutes in the event of a loss.

White Paper

Businesses face a growing challenge to ensure that the IT environment is properly protected. Backup Exec 12 integrates with other applications in the Symantec family of products, to complement your current data protection strategy, keep your data securely backed up and make it recoverable when you need it most.

Free stuff

VMware ESX Server in the Enterprise
By Edward L. Haletky
Published Dec 29, 2007 by Prentice Hall.
Enter now! | Official rules | Sample chapter

Green IT
By Toby Velte, Anthony Velte, Robert C. Elsenpeter
To be published Oct. 10, 2008 by McGraw Hill Professional
Enter now! | Official rules | About the book

Featured Sponsor

AISO founders envisioned a Web hosting company that was environmentally friendly. While the company employed energy-efficient innovations like solar panels, its infrastructure produced unacceptable power and cooling requirements. Find out how AISO leveraged AMD technology to overcome their challenge in this case study white paper.

In this whitepaper, Scalar explores the opportunity to change the landscape with respect to mission critical databases built around Oracle. Leveraging technologies such as Linux, high-end commodity processing power and Oracle RAC technology to architect, design, build and maintain database infrastructure that delivers maximum availability, reliability and performance at a fraction of traditional cost.

On a typical day, weather.com, the Web site for The Weather Channel in Atlanta, serves up between 15 million and 20 million page views. But in September 2004, when back-to-back hurricanes ransacked Florida, the peak traffic on one day more than tripled: over 70 million page views by more than 7 million unique visitors. Read the full success story now.

More Resources