About tr command in Linux

03.09.2025

tr command

tr command in Linux is used to delete, translate and/or squeeze characters from standard input, writing to standard output.

For example, you can replace lower-case characters to upper-case characters:

cat file | tr [:lower:] [:upper:]

or use

cat file | tr [a-z] [A-Z]
$ cat file
Hello, my friend, my name is Maxim! I like programming 24/7.
$ cat file | tr [:lower:] [:upper:]
HELLO, MY FRIEND, MY NAME IS MAXIM! I LIKE PROGRAMMING 24/7.

You can also delete characters with -d option. For example:

$ cat file
Hello, my friend, my name is Maxim! I like programming 24/7.
$ cat file | tr -d ' '
Hello,myfriend,mynameisMaxim!Ilikeprogramming24/7.
$ cat file | tr -d ' 'pi
Hello,myfrend,mynamesMaxm!Ilkerogrammng24/7.

You can also squeeze characters (replace repeated ones with one):

$ cat file
Hello, myy friend, myyyy naaame is Maaaaaaaxim! I like programming 24/7.
$ cat file | tr -s y
Hello, my friend, my naaame is Maaaaaaaxim! I like programming 24/7.
$ cat file | tr -s ya
Hello, my friend, my name is Maxim! I like programming 24/7.

More examples:

$ cat file
Hello, my friend, my name is Maxim! I like programming 24/7.

$ cat file | tr ' ' '\n'
Hello,
my
friend,
my
name
is
Maxim!
I
like
programming
24/7.

$ cat file | tr -d "a-zA-z"
,  ,    !    24/7.

$ cat file | tr -d [:alnum:]
,  ,    !    /.

$ cat file | tr [:punct:] PUNCT
HelloT my friendT my name is MaximP I like programming 24T7T

$ cat file | tr [:punct:] "PUNCT"
HelloT my friendT my name is MaximP I like programming 24T7T

$ cat file | tr [:punct:] ?
Hello? my friend? my name is Maxim? I like programming 24?7?

The problem with last examples is that tr works only with characters.