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.