tr command tutorial in linux/unix with examples and use cases

linux tr command – translate or delete characters

Linux tr command can translate, squeeze, and/or delete characters from standard input, and then write to standard output.

tr syntax

tr [OPTION]... SET1 [SET2]

tr options

  • -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

tr character sets

  • \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

tr examples & use cases

tr convert lower case to upper case

In the following example, we will use the linux tr command to convert lower case letters to upper case letters, and vice versa.

➜  ~ echo "hello world" | tr "a-z" "A-Z"
HELLO WORLD

➜  ~ echo "hello world" | tr "[:lower:]"  "[:upper:]"
HELLO WORLD

tr replace spaces to special characters

In the following example, we will use the linux tr command to replace the specific string of the input string to other characters.


Use the tr command to convert spaces to special characters “#”

➜  ~ echo "hello world" | tr " " "#"
hello#world

Use the tr command to convert spaces to tab

➜  ~ echo "hello world" | tr " " "\t"
hello	world
➜  ~

tr delete spaces

In the following example, we will use the linux tr -d option to remove the whitespace in the string.

➜  ~ echo "hello    world " | tr -d " "
helloworld

tr delete empty lines

In the following example, we will use the linux tr -s option to delete empty lines in the text file.

➜  ~ cat test.log
Hello world!

I am tr.

bye
➜  ~ cat test.log | tr -s '\n'
Hello world!
I am tr.
bye
tr delete empty lines

tr remove duplicate spaces

Use the linux tr -s option to remove duplicate characters. In the following example, we delete the repeated spaces in the input string.

➜  ~ echo "hello    world" | tr -s " "
hello world

tr remove all the digits 

In the following example, we use the linux tr command to delete all digits in the input string.

➜  ~ echo "I am 444221" | tr -d "[:digit:]"
I am

tr remove strings

In the following example, we will use the linux tr -d option to delete all strings in the input.

➜  ~ echo "I am 444221" | tr -d "[a-zA-Z]"
  444221

ok.

At this point, you can use the linux tr command to delete or replace specified characters.

Add a Comment

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