10 tr Command Examples in Linux

tr (short for translate) is a useful command line utility that translates and/or deletes characters from stdin input, and writes to stdout. It is a useful program for manipulating text on the command line.

In this article, we will explain some useful tr command examples for Linux newbies.

The syntax for running tr command is as follows, where characters in SET1 are translated to characters in SET2.

$ tr flags [SET1] [SET2]

Linux tr Command Examples

1. A simple tr command use case is to change all lower case letters in text to upper case and vice versa, as shown below.

$ cat linux.txt

linux is my life
linux has changed my life
linux is best and everthing to me..:)
$ cat domains.txt | tr [:lower:] [:upper:]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

2. Alternatively, you can use the following command to change all lower case letters to upper case in a file as shown.

$ cat linux.txt | tr [a-z] [A-Z]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

3. To save the results written to stdout in a file for later processing, use the shell’s output redirection feature (>) as shown.

$ cat linux.txt | tr [a-z] [A-Z] >output.txt
$ cat output.txt 

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

4. In regards to the redirection, you can send input to tr using the input redirection and redirect the output to a file using the same command, as shown.

$ tr [a-z] [A-Z] < linux.txt >output.txt

5. Another useful feature is, you can use the -d flag to delete characters, for example to remove the spaces in the domain names using the following command.

$ cat domains.txt

www. tecmint. com
www. fossmint. com
www. linuxsay. com
$ cat domains.txt | tr -d '' 

www.tecmint.com
www.fossmint.com
www.linuxsay.com

6. If there are repeated characters in a sequence (for instance double spaces) in the text you are processing, you can use the -s option to squeeze the characters leaving only one occurrence of it.

$ cat domains.txt

www.tecmint.....com
www.fossmint.com
www.linuxsay.com
$ cat domains.txt | tr -s '' 

www.tecmint.com
www.fossmint.com
www.linuxsay.com

7. The -c option tells tr to use the complement in the given of SET. In this example, we want to delete all the letters and only leave the UID.

$ echo "My UID is $UID" | tr -cd "[:digit:]\n"
OR
$ echo "My UID is $UID" | tr -d "a-zA-Z"

8. Here is an example of breaking a single line of words (sentence) into multiple lines, where each word appears in a separate line.

$ echo "My UID is $UID"

My UID is 1000

$ echo "My UID is $UID" | tr " "  "\n"

My 
UID 
is 
1000

9. Related to the previous example, you can also translate multiple lines of words into a single sentence as shown.

$ cat uid.txt

My 
UID 
is 
1000

$ tr "\n" " " < uid.txt

My UID is 1000

10. It is also possible to translate just a single character, for instance a space into a “ : ” character, as follows.

$ echo "Tecmint.com =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

Tecmint.com:=>Linux-HowTos,Guides,Tutorials

There are several sequence characters you can use with tr, for more information, see the tr man page.

$ man tr

That’s all! tr is a useful command for manipulating text on the command line. In this guide, we showed some useful tr command usage examples for Linux newbies. You can share your thoughts with us via the comment form below.

Best Affordable Linux and WordPress Services For Your Business
Outsource Your Linux and WordPress Project and Get it Promptly Completed Remotely and Delivered Online.

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.45/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Aaron Kili

Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

11 Responses

  1. Stewart McKenna says:

    Trim out control characters in a field.

    tr -d '[[:cntrl:]]'

  2. Stef says:

    You forgot the most important use for tr which is to implement a rot13 encoder-decoder; that is translate between the range a-m and n-z.

    # tr a-z n-za-m
    # tr a-zA-Z n-za-mN-ZA-M
    
  3. Romain says:

    There is a mistake point 6. Should be -s not -d.

  4. Paul says:

    -s command is incorrect in your post. You currently have -d showing in the example. Other than the syntax error and that one example it’s a pretty good introduction to the TR command.

  5. Ed says:

    You did not show -s option example in paragraph 6. Instead you showed the -d ' '.

Leave a Reply to Stewart McKenna Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.