Examples of Searching and Replacing
The examples in Table 6-10 show the metacharacters available to sed and vi. We have shown vi commands with an initial colon because that is how they are invoked with vi. A space is marked by a ▪; a tab is marked by tab.
|
Command |
Result |
|
s/.*/( & )/ |
Redo the entire line, but add parentheses. |
|
s/.*/mv & &.old/ |
Change a word list (one word per line) into mv commands. |
|
/^$/d |
Delete blank lines. |
|
:g/^$/d |
Same as previous, in vi editor. |
|
/^[▪
|
Delete blank lines, plus lines containing only spaces or tabs. |
|
:g/^[▪
|
Same as previous, in vi editor. |
|
s/▪*/▪/g |
Turn one or more spaces into one space. |
|
:%s/▪*/▪/g |
Same as previous, in ex editor. |
|
:s/[0-9]/Item &:/ |
Turn a number into an item label (on the current line). |
|
:s |
Repeat the substitution on the first occurrence. |
|
:& |
Same as previous. |
|
:sg |
Same, but for all occurrences on the line. |
|
:&g |
Same as previous. |
|
:%&g |
Repeat the substitution globally (i.e., on all lines). |
|
:.,$s/Fortran/\U&/g |
On current line to last line, change word to uppercase. |
|
:%s/.*/\L&/ |
Lowercase entire file. |
|
:s/\<./\u&/g |
Uppercase first letter of each word on current line (useful for titles). |
|
:%s/yes/No/g |
Globally change a word to No. |
|
:%s/Yes/~/g |
Globally change a different word to No (previous replacement). |
Finally, here are some sed examples for transposing words. A simple transposition of two words might look like this:
s/die or do/do or die/ Transpose words ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access