tr je UNIXový nástroj pro překlad, mazání nebo mačkání opakovaných znaků. Bude číst ze STDIN a zapisovat do STDOUT.
tr znamená přeložit.
Syntaxe
Syntaxe příkazu tr je:
$ tr [OPTION] SET1 [SET2]
Překlad
Pokud jsou zadány jak SET1, tak SET2 a není specifikováno '-d' OPTION, pak příkaz tr nahradí každý znak v SET1 každý znak na stejné pozici v SET2.
1. Převést malá písmena na velká
Následující příkaz tr slouží k převodu malých písmen na velká
$ tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ thegeekstuff THEGEEKSTUFF
Následující příkaz také převede malá písmena na velká
$ tr [:lower:] [:upper:] thegeekstuff THEGEEKSTUFF
Můžete také použít rozsahy v tr. Následující příkaz používá rozsahy k převodu malých písmen na velká.
$ tr a-z A-Z thegeekstuff THEGEEKSTUFF
2. Přeložte rovnátka do závorek
Můžete také překládat ze souboru a do souboru. V tomto příkladu přeložíme složené závorky v souboru se závorkami.
$ tr '{}' '()' < inputfile > outputfile
Výše uvedený příkaz přečte každý znak ze „inputfile“, přeloží, pokud se jedná o složenou závorku, a zapíše výstup do „outputfile“.
3. Přeložte mezery na tabulátory
Následující příkaz převede všechny mezery na tabulátory
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
4. Squeeze opakování znaků pomocí -s
V příkladu 3 vidíme, jak přeložit prostor pomocí tabulátorů. Ale pokud jsou dvě mezery přítomné nepřetržitě, pak předchozí příkaz převede každou mezeru na tabulátor následovně.
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
Můžeme použít volbu -s ke zmáčknutí opakování znaků.
$ echo "This is for testing" | tr -s [:space:] '\t' This is for testing
Podobně můžete převést více souvislých mezer jednou mezerou
$ echo "This is for testing" | tr -s [:space:] ' ' This is for testing
5. Smažte zadané znaky pomocí volby -d
tr lze také použít k odstranění určitých znaků pomocí volby -d.
$ echo "the geek stuff" | tr -d 't' he geek suff
Chcete-li z řetězce odstranit všechny číslice, použijte
$ echo "my username is 432234" | tr -d [:digit:] my username is
Také, pokud chcete mazat řádky ze souboru, můžete použít příkaz sed d.
6. Doplňte sady pomocí volby -c
SET1 můžete doplnit pomocí volby -c. Chcete-li například odstranit všechny znaky kromě číslic, můžete použít následující.
$ echo "my username is 432234" | tr -cd [:digit:] 432234
7. Odstraňte ze souboru všechny netisknutelné znaky
Následující příkaz lze použít k odstranění všech netisknutelných znaků ze souboru.
$ tr -cd [:print:] < file.txt
8. Spojte všechny řádky v souboru do jednoho řádku
Níže uvedený příkaz přeloží všechny nové řádky na mezery a výsledek vytvoří jako jeden řádek.
$ tr -s '\n' ' ' < file.txt