TR(1)

NAME
tr - translate characters

SYNOPSIS
tr [-dcs0] [ string1 string2 ]
tr -d[cs0] string1

DESCRIPTION
Tr copies the standard input to the standard output with substitution or deletion of selected characters. 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: -c complements the set of characters in string1 with respect to the universe of characters whose ASCII codes are 01 through 0377 octal; -d deletes all input characters in string1; -s squeezes all strings of repeated output characters that are in string2 to single characters.

If -d is not given string2 must be supplied if string1 is not empty.

In either string the notation a-b means a range of characters from a to b in increasing ASCII order. The character `\' followed by 1, 2 or 3 octal digits stands for the character whose ASCII code is given by those digits. A `\' followed by any other character stands for that character.

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 `\' from the Shell. 012 is the ASCII code for newline.

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

If the ASCII NUL character is not specified in either string1 or string2 any NUL characters in the input will be removed. This behaviour is for backwards compatibility and may be prevented using the -0 flag.

OPTIONS

-c  Replace string1 with all the characters in the range \001 to \377 (in that order) less those in the original string1.

-d  Delete all input characters which are members of string1.

-s  After deleting or converting the input characters replace sequences of a character from string2 with a single instance of that character.

-0  Do not automatically delete ASCII NUL characters from the input.

SEE ALSO
ed(1), ascii(7), expand(1).