Difference between revisions of "Sed"
imported>Cov (Created page with ''''Sed''' is an extremely handy commandline *nix tool. Refer to its manual page for a more extensive overview of its capabilities. =Uses= ==Substitution== The most popular comma…') |
imported>Cov (→Substitution) |
||
Line 3: | Line 3: | ||
=Uses= | =Uses= | ||
==Substitution== | ==Substitution== | ||
− | The most popular command of sed is the <code>s</code> command for substitution. To use the command, type an s followed by a delimiting character followed by a regular expression to | + | The most popular command of sed is the <code>s</code> command for substitution. To use the command, type an s, followed by a delimiting character, followed by a regular expression to look for, followed by the delimiting character, followed by an expression with which to replace what was found, followed by a final delimiting character. (<code>/</code> is the conventional delimiting character and potentially required by some versions of sed. GNU sed can take any character however, and when URLs or paths are involved, <code>%</code> is often a handy choice to lessen the amount of escaping required.) |
<pre> | <pre> | ||
$ echo "Never let schooling interfere with your education." | sed 's/schooling/video games/' | $ echo "Never let schooling interfere with your education." | sed 's/schooling/video games/' |
Revision as of 02:53, 24 December 2009
Sed is an extremely handy commandline *nix tool. Refer to its manual page for a more extensive overview of its capabilities.
Uses
Substitution
The most popular command of sed is the s
command for substitution. To use the command, type an s, followed by a delimiting character, followed by a regular expression to look for, followed by the delimiting character, followed by an expression with which to replace what was found, followed by a final delimiting character. (/
is the conventional delimiting character and potentially required by some versions of sed. GNU sed can take any character however, and when URLs or paths are involved, %
is often a handy choice to lessen the amount of escaping required.)
$ echo "Never let schooling interfere with your education." | sed 's/schooling/video games/' Never let video games interfere with your education.
Groups can be useful in the replacement portion. Use the -r
flag if you don't want to escape the initial grouping parenthesis. The -e
flag allows for multiple expressions to be evaluated.
$ echo "Never let schooling interfere with your education." | sed -re 's/(schooling)/costly \1/' -e 's/(education)/invaluable \1/' Never let costly schooling interfere with your invaluable education.