.TH TR 1 .SH NAME tr \- translate characters .SH SYNOPSIS .B tr [ .B \-cds ] [ string1 [ string2 ] ] .SH DESCRIPTION .I tr copies the standard input to the standard output with substitution or deletion of selected characters. Input characters found in .I string1 are mapped into the corresponding characters of .IR string2 . When .I string2 is short it is padded to the length of .I string1 by duplicating its last character. Any combination of the options .B \-cds may be used: .TP .B \-c complement the set of characters in .I string1 with respect to the universe of characters whose ASCII codes are 01 through 0377 .TP .B \-d delete all input characters in .I string1 .TP .B \-s squeeze all strings of repeated output characters that are in .I string2 to single characters .PP In either string the notation .IB a \- b means a range of characters from .I a to .I b in increasing ASCII order. The character `\e' followed by 1, 2 or 3 octal digits stands for the character whose ASCII code is given by those digits. A `\e' followed by any other character stands for that character. .PP The following example creates 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. The second string is quoted to protect `\e' from the Shell. 012 is the ASCII code for newline. .IP tr \-cs A\-Za\-z \'\e012\' file2 .SH "SEE ALSO" ed(1), ascii(7) .SH BUGS Won't handle ASCII NUL in .I string1 or .I string2; always deletes NUL from input.