Vyhledávání na webu

10 tr Příklady příkazů v Linuxu


tr (zkratka pro translate) je užitečný nástroj příkazového řádku, který překládá a/nebo odstraňuje znaky ze vstupu stdin a zapisuje do stdout. Je to užitečný program pro manipulaci s textem na příkazovém řádku.

Tento článek vysvětlí některé užitečné příklady příkazu tr pro nováčky v Linuxu.

Syntaxe pro spuštění příkazu tr je následující, kde znaky v SET1 jsou přeloženy na znaky v SET2.

tr flags [SET1] [SET2]

Příklady příkazů Linux tr

1. Jednoduchým případem použití příkazu tr je změnit všechna malá písmena v textu na velká a naopak, jak je znázorněno níže.

$ cat linux.txt

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

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

2. Alternativně můžete pomocí následujícího příkazu změnit všechna malá písmena v souboru na velká, jak je znázorněno na obrázku.

$ 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. Chcete-li uložit výsledky zapsané do stdout do souboru pro pozdější zpracování, použijte funkci přesměrování výstupu shellu (>), jak je znázorněno.

$ 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. Pokud jde o přesměrování, můžete odeslat vstup do tr pomocí přesměrování vstupu a přesměrovat výstup do souboru pomocí stejného příkazu, jak je znázorněno.

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

5. Další užitečnou funkcí je, že můžete použít příznak -d k odstranění znaků, například k odstranění mezer v názvech domén pomocí následujícího příkazu.

$ cat domains.txt

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

linux-console.net
www.fossmint.com
www.linuxsay.com

6. Pokud se v textu, který zpracováváte, opakují znaky v sekvenci (například dvojité mezery), můžete použít možnost -s a zmáčknout znaky a nechat pouze jeden jeho výskyt.

$ cat domains.txt

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

linux-console.net
www.fossmint.com
www.linuxsay.com

7. Volba -c říká tr, aby použil doplněk v dané z SET. V tomto příkladu chceme smazat všechna písmena a ponechat pouze UID.

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

8. Zde je příklad rozdělení jednoho řádku slov (věty) na více řádků, kde se každé slovo objeví samostatně.

$ echo "My UID is $UID"

My UID is 1000

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

My 
UID 
is 
1000

9. Ve vztahu k předchozímu příkladu můžete také přeložit více řádků slov do jedné věty, jak je znázorněno.

$ cat uid.txt

My 
UID 
is 
1000

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

My UID is 1000

10. Je také možné přeložit pouze jeden znak, například mezeru, na znak “ : ” následovně.

$ echo "linux-console.net =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

linux-console.net:=>Linux-HowTos,Guides,Tutorials

Existuje několik sekvenčních znaků, které můžete použít s tr, více informací naleznete na manuálové stránce tr.

man tr

To je vše! tr je užitečný příkaz pro manipulaci s textem na příkazovém řádku. V této příručce jsme ukázali několik užitečných příkladů použití příkazu tr pro nováčky v Linuxu. Můžete se s námi podělit o své myšlenky prostřednictvím formuláře níže.