tr (1)

Quick Reference

Translate characters - run replacements based on single characters and character sets.

  • Replace all occurrences of a character in a file, and print the result:

tr {{find_characters}} {{replace_characters}} < {{filename}}

  • Map each character of the first set to the corresponding character of the second set:

tr 'abcd' 'jkmn' < {{filename}}

  • Delete all occurrences of the specified set of characters from the input:

tr -d '{{input_characters}}'

  • Compress a series of identical characters to a single character:

tr -s '{{input_characters}}'

  • Translate the contents of the file to upper-case and print result:

tr "[:lower:]" "[:upper:]" < {{filename}}

  • Strip out non-printable characters from the file and print result:

tr -cd "[:print:]" < {{filename}}


tr - translate or delete characters


tr [ OPTION]... SET1 [SET2]


Translate, squeeze, and/or delete characters from standard input, writing to standard output.
-c, -C, --complement
use the complement of SET1
-d, --delete
delete characters in SET1, do not translate
-s, --squeeze-repeats
replace each sequence of a repeated character that is listed in the last specified SET, with a single occurrence of that character
-t, --truncate-set1
first truncate SET1 to length of SET2
display this help and exit
output version information and exit
SETs are specified as strings of characters. Most represent themselves. Interpreted sequences are:
character with octal value NNN (1 to 3 octal digits)
audible BEL
form feed
new line
horizontal tab
vertical tab
all characters from CHAR1 to CHAR2 in ascending order
in SET2, copies of CHAR until length of SET1
REPEAT copies of CHAR, REPEAT octal if starting with 0
all letters and digits
all letters
all horizontal whitespace
all control characters
all digits
all printable characters, not including space
all lower case letters
all printable characters, including space
all punctuation characters
all horizontal or vertical whitespace
all upper case letters
all hexadecimal digits
all characters which are equivalent to CHAR
Translation occurs if -d is not given and both SET1 and SET2 appear. -t may be used only when translating. SET2 is extended to length of SET1 by repeating its last character as necessary. Excess characters of SET2 are ignored. Only [:lower:] and [:upper:] are guaranteed to expand in ascending order; used in SET2 while translating, they may only be used in pairs to specify case conversion. -s uses the last specified SET, and occurs after translation or deletion.


Written by Jim Meyering.


GNU coreutils online help: <>
Report tr translation bugs to <>


Full documentation at: <>
or available locally via: info '(coreutils) tr invocation'


GNU coreutils 8.29.13-0a854
Source updated
December 2, 2018
Page created
February 9, 2018
Page generated
December 2, 2018