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 wordsThe real trick is to use hold ...
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