# phpman > man > tr(1)

> **TLDR:** 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 < {{path/to/file}} {{find_character}} {{replace_character}}`
- Replace all occurrences of a character from another command's output:
  `echo {{text}} | tr {{find_character}} {{replace_character}}`
- Map each character of the first set to the corresponding character of the second set:
  `tr < {{path/to/file}} '{{abcd}}' '{{jkmn}}'`
- Delete all occurrences of the specified set of characters from the input:
  `tr < {{path/to/file}} {{-d|--delete}} '{{input_characters}}'`
- Compress a series of identical characters to a single character:
  `tr < {{path/to/file}} {{-s|--squeeze-repeats}} '{{input_characters}}'`
- Translate the contents of a file to upper-case:
  `tr < {{path/to/file}} "[:lower:]" "[:upper:]"`
- Strip out non-printable characters from a file:
  `tr < {{path/to/file}} {{-cd|--complement --delete}} "[:print:]"`

*Source: tldr-pages*

---

[TR(1)](https://www.chedong.com/phpMan.php/man/TR/1/markdown)                                       User Commands                                      [TR(1)](https://www.chedong.com/phpMan.php/man/TR/1/markdown)



## NAME
       tr - translate or delete characters

## SYNOPSIS
       **tr** [_OPTION_]... _SET1_ [_SET2_]

## DESCRIPTION
       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

       **--help** display this help and exit

### --version
              output version information and exit

       SETs are specified as strings of characters.  Most  represent  themselves.   Interpreted  se‐
       quences 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 SET2, copies of CHAR until length of SET1

       [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 SET1 and SET2 appear.  **-t** may be used only
       when translating.  SET2 is extended to length of SET1 by repeating its last character as nec‐
       essary.   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.

## AUTHOR
       Written by Jim Meyering.

## REPORTING BUGS
       GNU coreutils online help: <<https://www.gnu.org/software/coreutils/>>
       Report any translation bugs to <<https://translationproject.org/team/>>

## COPYRIGHT
       Copyright © 2020 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.

## SEE ALSO
       Full documentation <<https://www.gnu.org/software/coreutils/tr>>
       or available locally via: info '(coreutils) tr invocation'



GNU coreutils 8.32                          January 2026                                       [TR(1)](https://www.chedong.com/phpMan.php/man/TR/1/markdown)
