[manual index][section index]


tr - translate characters


tr [ -cds ] [ string1 [ string2 ] ]


Tr copies the standard input to the standard output with substitution or deletion of selected characters (runes). Input characters found in string1 are mapped into the corresponding characters of string2. When string2 is short it is padded to the length of string1 by duplicating its last character. Any combination of the options -cds may be used:

Complement string1: replace it with a lexicographically ordered list of all other characters.
Delete from input all characters in string1.
Squeeze repeated output characters that occur in string2 to single characters.

In either string a noninitial sequence -x, where x is any character (possibly quoted), stands for a range of characters: a possibly empty sequence of codes running from the successor of the previous code up through the code for x. The character \ followed by 1, 2 or 3 octal digits stands for the character whose 16-bit value is given by those digits. The character sequence \x followed by 1 to 6 hexadecimal digits stands for the character whose 21-bit value is given by those digits. A \ followed by any other character stands for that character.


Replace all upper-case ASCII letters by lower-case.

tr A-Z a-z <mixed >lower

Create a list of all the words in file1 one per line in file2, where a word is taken to be a maximal string of alphabetics. String2 is given as a quoted newline.

tr -cs A-Za-z '
' <file1 >file2



TR(1 ) Rev:  Tue Mar 31 02:42:38 GMT 2015