Common SED taks
The bread and butter of sed is its search-and-replace functionality. Let’s start with that and then throw in some other fun commands. Tutorial
As with the previous posts, if you are on Windows you’ll want to install Cygwin or one of the various other tools suggested in the previous comments. sed also uses regular expressions so you’ll want to keep your regex reference handy.
sed 's/#FF0000/#0000FF/g' main.css
We can read this like so: search [s/] for red [#FF0000/] and replace it with blue [#0000FF], globally [/g] in main.css. Two notes here: 1) This does not actually modify the file, but outputs what the file would look like if it did the replace and 2) If we left off the “g” at the end it would only replace the first occurrence. So let’s modify the file this time.
sed -i -r 's/#(FF0000|F00)b/#0F0/g' main.css
This is an example from the find tutorial that replaces all instances of red with green in our CSS file. The -r option here gives us extra regex functionality. As Sheila mentioned in the find post, -i does not work on Solaris and she suggests something like perl -e s/foo/bar/g -i instead.
Suppose we want to change a whole color scheme though, the best way is to use a sed script file like so:
sedscript - one command per line
s/#00CC00/#9900CC/g s/#990099/#000000/g s/#0000FF/#00FF00/g ...
use sedscript with -f
sed -i -f sedscript *.css
sedscript is obviously a new file we have created. Note that we don’t quote the commands in the file. Now we have successfully changed our color scheme in our CSS files. Other Examples
Trim whitespace from beginning and end of line You *might* have to type a tab instead of t here depending on your version of sed
sed -r 's/^[ t]*//;s/[ t]*$//g'
Delete all occurances of foo
sed 's/foo//g'
Here are some good references you should bookmark
- http://sed.sourceforge.net/sed1line.txt – Eric Pement
- http://www.catonmat.net/blog/sed-stream-editor-cheat-sheet/ – Peteris Krumins
~~LINKBACK~~ ~~DISCUSSION~~