Sed
From FreeBSDwiki
(Difference between revisions)
Line 1: | Line 1: | ||
− | Short for "Streamline Editor", sed allows you to run a file through it and either match or change data without actually editing the file itself. | + | Short for "Streamline Editor", sed allows you to run a file through it and either match or change data without actually editing the file itself. This can be particularly handy if you need to make a lot of similar changes to a file -- e.g., you find out you consistently put in a wrong hostname in a configuration file, and you need to change your conf file to point to the right server....except the same change needs to be made 100 times. [[sed]] to the rescue. |
The most common usage is to change all instances of a phrase to another; to wit: | The most common usage is to change all instances of a phrase to another; to wit: |
Revision as of 15:45, 29 September 2004
Short for "Streamline Editor", sed allows you to run a file through it and either match or change data without actually editing the file itself. This can be particularly handy if you need to make a lot of similar changes to a file -- e.g., you find out you consistently put in a wrong hostname in a configuration file, and you need to change your conf file to point to the right server....except the same change needs to be made 100 times. sed to the rescue.
The most common usage is to change all instances of a phrase to another; to wit:
dave@samizdata:~% cat sed_testfile dave dave davedave jimbo dave freebsd dave@samizdata:~% sed s/dave/david/ sed_testfile david david daviddave jimbo david freebsd dave@samizdata:~% more sed_testfile dave dave davedave jimbo dave freebsd dave@samizdata:~%
As you can see, the changes were not actually made to the file. I didn't tell it to put the changes anywhere! Easily fixed with the help of redirection:
dave@samizdata:~% sed s/dave/david/ sed_testfile > sed_testfile_new dave@samizdata:~% more sed_testfile_new david david daviddave jimbo david freebsd dave@samizdata:~%