Examples of Searching and Replacing
The examples in the following table show the metacharacters available to sed or ex. Note that ex commands begin with a colon. A space is marked by a ❐; a tab is marked by a tab.
Command | Result |
---|---|
s/.*/( & )/ | Redo the entire line, but add spaces and parentheses. |
s/.*/mv & &.old/ | Change a wordlist (one word per line) into mv commands. |
/^$/d | Delete blank lines. |
:g/^$/d | Same as previous, in ex editor. |
/^[❐tab]*$/d | Delete blank lines, plus lines containing only spaces or tabs. |
:g/^[❐tab]*$/d | Same as previous, in ex 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 as previous, 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/\(F\)\(ORTRAN\)/\1\L\2/g | On current line to last line, change spelling of “FORTRAN” to correct, modern usage. |
:%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, 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
The real trick is to use hold ...
Get Linux in a Nutshell, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.