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