www.LinuxHowtos.org





TR

Section: User Commands (1)
Updated: February 2026
Index Return to Main Contents
 

NAME

tr - translate or delete characters  

SYNOPSIS

tr [,OPTION/]... ,STRING1 /[,STRING2/]  

DESCRIPTION

Translate, squeeze, and/or delete characters from standard input, writing to standard output. STRING1 and STRING2 specify arrays of characters ARRAY1 and ARRAY2 that control the action.

X'tty: link https://www.gnu.org/software/coreutils/manual/coreutils.html#t-c'-c, -C, --complementX'tty: link'
use the complement of ARRAY1
X'tty: link https://www.gnu.org/software/coreutils/manual/coreutils.html#t-d'-d, --deleteX'tty: link'
delete characters in ARRAY1, do not translate
X'tty: link https://www.gnu.org/software/coreutils/manual/coreutils.html#t-s'-s, --squeeze-repeatsX'tty: link'
replace each sequence of a repeated character that is listed in the last specified ARRAY, with a single occurrence of that character
X'tty: link https://www.gnu.org/software/coreutils/manual/coreutils.html#t-t'-t, --truncate-set1X'tty: link'
first truncate ARRAY1 to length of ARRAY2
X'tty: link https://www.gnu.org/software/coreutils/tr#t-help'--helpX'tty: link'
display this help and exit
X'tty: link https://www.gnu.org/software/coreutils/tr#t-version'--versionX'tty: link'
output version information and exit

ARRAYs are specified as strings of characters. Most represent themselves. Interpreted sequences are:

NNN
character with octal value NNN (1 to 3 octal digits)
backslash
a
audible BEL
b
backspace
f
form feed
n
new line
r
return
t
horizontal tab
v
vertical tab
CHAR1-CHAR2
all characters from CHAR1 to CHAR2 in ascending order
[CHAR*]
in ARRAY2, copies of CHAR until length of ARRAY1
[CHAR*REPEAT]
REPEAT copies of CHAR, REPEAT octal if starting with 0
[:alnum:]
all letters and digits
[:alpha:]
all letters
[:blank:]
all horizontal whitespace
[:cntrl:]
all control characters
[:digit:]
all digits
[:graph:]
all printable characters, not including space
[:lower:]
all lower case letters
[:print:]
all printable characters, including space
[:punct:]
all punctuation characters
[:space:]
all horizontal or vertical whitespace
[:upper:]
all upper case letters
[:xdigit:]
all hexadecimal digits
[=CHAR=]
all characters which are equivalent to CHAR

Translation occurs if -d is not given and both STRING1 and STRING2 appear. -t is only significant when translating. ARRAY2 is extended to length of ARRAY1 by repeating its last character as necessary. Excess characters of ARRAY2 are ignored. Character classes expand in unspecified order; while translating, '[:lower:]' and '[:upper:]' may be used in pairs to specify case conversion. Squeezing occurs after translation or deletion. Arguments like '[...]' should be quoted, to avoid potential shell globbing.  

BUGS

Full support is available only for safe singl-byte locales, in which every possible input byte represents a single character. The C locale is safe in GNU systems, so you can avoid this issue in the shell by running LC_ALL=C tr instead of plain tr.  

AUTHOR

Written by Jim Meyering.  

REPORTING BUGS

Report bugs to: bug-coreutils@gnu.org


Report Gentoo bugs to: https://bugs.gentoo.org/
GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
General help using GNU software: <https://www.gnu.org/gethelp/>
Report any translation bugs to <https://translationproject.org/team/>  

SEE ALSO

Full documentation <https://www.gnu.org/software/coreutils/tr>
or available locally via: info aq(coreutils) tr invocationaq


Packaged by Gentoo (9.10 (p0))
Copyright © 2026 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


 

Index

NAME
SYNOPSIS
DESCRIPTION
BUGS
AUTHOR
REPORTING BUGS
SEE ALSO