Name

tr [options] charset1 [charset2] — coreutils

Synopsis

/usr/bin stdin stdout - file -- opt --help --version

The tr command performs some simple, useful translations of one set of characters into another. For example, to change all vowels into asterisks:

$ cat myfile
This is a very wonderful file.
$ cat myfile | tr aeiouAEIOU '*'
Th*s *s * v*ry w*nd*rf*l f*l*.

or to delete all vowels:

$ cat myfile | tr -d aeiouAEIOU
Ths s  vry wndrfl fl.

or to capitalize everything in the file:

$ cat myfile | tr 'a-z' 'A-Z'
THIS IS A VERY WONDERFUL FILE.

tr translates the first character in charset1 into the first character in charset2, the second into the second, the third into the third, etc. If the length of charset1 is N, only the first N characters in charset2 are used. (If charset1 is longer than charset2, see the -t option.)

Character sets can have the following forms.

Form

Meaning

ABCD

The sequence of characters A, B, C, D.

A-B

The range of characters from A to B.

[x*y]

y repetitions of the character x.

[: class:]

The same character classes ([:alnum:], [:digit:], etc.) accepted by grep.

tr also understands the escape characters “\a” (^G = ring bell), “\b” (^H = backspace), “\f” (^L = formfeed), “\n” (^J = newline), “\r” (^M = return), “\t” (^I = tab), and “\v” (^K = vertical tab) accepted by printf (see Screen Output), as well as the notation \nnn to mean the character with octal value nnn.

tr is great for quick and simple translations; but for more powerful jobs consider sed, awk, or perl.

Useful options

-d ...

Get Linux Pocket Guide 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.