by Shivani Ghughtyal
The tr command in UNIX is a command line utility for translating or deleting characters. It supports a range of transformations including uppercase to lowercase, squeezing repeating characters, deleting specific characters and basic find and replace. It can be used with UNIX pipes to support more complex translation. tr stands for translate.
Syntax :
$ tr [OPTION] SET1 [SET2]
Options
-c : complements the set of characters in string.i.e., operations apply to characters not in the given set -d : delete characters in the first set from the output. -s : replaces repeated characters listed in the set1 with single occurrence -t : truncates set1
Sample Commands
To convert from lower case to upper case the predefined sets in tr can be used.
$cat greekfile Output: WELCOME TO GeeksforGeeks $cat greekfile | tr “[a-z]” “[A-Z]” Output: WELCOME TO GEEKSFORGEEKS or $cat geekfile | tr “[:lower:]” “[:upper:]” Output: WELCOME TO GEEKSFORGEEKS
The following command will translate all the white-space to tabs
$ echo "Welcome To GeeksforGeeks" | tr [:space:] '\t' Output: Welcome To GeeksforGeeks
You can also translate from and to a file. In this example we will translate braces in a file with parenthesis.
$cat greekfile Output: {WELCOME TO} GeeksforGeeks $ tr '{}' '()' newfile.txt Output: (WELCOME TO) GeeksforGeeks
The above command will read each character from “geekfile.txt”, translate if it is a brace, and write the output in “newfile.txt”.
To squeeze repeat occurrences of characters specified in a set use the -s option. This removes repeated instances of a character.
OR we can say that,you can convert multiple continuous spaces with a single space
$ echo "Welcome To GeeksforGeeks" | tr -s [:space:] ' ' Output: Welcome To GeeksforGeeks
To delete specific characters use the -d option.This option deletes characters in the first set specified.
$ echo "Welcome To GeeksforGeeks" | tr -d 'w' Output: elcome To GeeksforGeeks
$ echo "my ID is 73535" | tr -d [:digit:] Output: my ID is
You can complement the SET1 using -c option. For example, to remove all characters except digits, you can use the following.
$ echo "my ID is 73535" | tr -cd [:digit:] Output: 73535