tr je nástroj příkazového řádku v Linuxu a Unixových systémech, které překládá, smaže a stiskne znaky ze standardního vstupu a zapisuje výsledek do standardního výstupu.

příkaztr může provádět operace, jako je odstranění opakovaných znaků, převedení velkých písmen na malá písmena a nahrazení a odstranění základního znaku. Obvykle se používá v kombinaci s jinými příkazy prostřednictvím potrubí.,

v tomto tutoriálu vám ukážeme, jak používat příkaz tr prostřednictvím praktických příkladů a podrobných vysvětlení nejběžnějších možností.

Jak Používat Příkaz tr #

syntaxe tr příkazu je následující:

tr OPTION... SET1 

tr přijímá dvě sady znaků, které mají obvykle stejnou délku, a nahradí znaky z první sady s odpovídajícími znaky z druhého setu.,

a je v podstatě řetězec znaků, včetně speciálních backslash-unikl znaky.

V následujícím příkladu, tr a nahradí všechny znaky ze standardního vstupu (linuxize), mapování postavy z první set s odpovídající těm z druhé množiny.,

echo 'linuxize' | tr 'lin' 'red'

Každý výskyt l nahrazen r i e, a n d:

reduxeze

znakové sady může být také definována pomocí rozsahy znaků., Například, namísto psaní:

echo 'linuxize' | tr 'lmno' 'wxyz'

můžete použít:

echo 'linuxize' | tr 'l-n' 'w-z'

Když -c (--complement) volba se používá, tr a nahradí všechny znaky, které nejsou v SET1.

V příkladu níže všechny znaky kromě „li“ se nahrazuje poslední znak z druhé množiny.

echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy

Jak jste si možná všimli, výstupní výše uvedené má ještě jeden viditelný znak než vstupní., Je to proto, že echo příkaz vytiskne neviditelného znaku nového řádku \n, který je také nahradil y. Chcete-li zopakovat řetězec bez nového řádku, použijte volbu -n.

-d (--delete) volba říká tr odstranit znaky uvedené v SET1. Při mazání znaků bez stlačení zadejte pouze jednu sadu.,

níže uvedený příkaz odstranit l i z znaky:

echo 'Linuxize' | tr -d 'liz'

L znak není odstraněn, protože vstup obsahuje velká písmena L l znak v SADĚ je malá.

Lnuxe

-s (--squeeze-repeats) možnost nahrazuje posloupnost opakované výskyty s znakovou sadu v poslední SET.,

V následujícím příkladu, tr odstraňuje opakované prostor znaků:

echo "GNU \ Linux" | tr -s ' '
GNU \ Linux

Když SET2 se používá sekvence znaků uvedených v SET1 je nahrazen SET2.

echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux

-t (--truncate-set1) volba síly tr zkrátit SET1 délce SET2, než dělat další zpracování.,

Pokud je SET1 větší než SET2 tr použije poslední znak SET2. Zde je příklad:

echo 'Linux ize' | tr 'abcde' '12'

výstup ukazuje, že znak e od SET1 je uzavřeno s nejnovější charakter SET2, která je 2:

Linux iz2

Nyní, použijte stejný příkaz s -t možnosti:

echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize

můžete vidět, že poslední tři znaky z SET1 jsou odstraněny., SET1 se stává ‚ab‘, stejnou délku jako SET2, a žádná náhrada se provádí.

kombinace možností #

příkaztr také umožňuje kombinovat jeho možnosti. Například, následující příkaz první nahrazuje všechny znaky kromě i 0 a pak stiskne opakovat 0 znaky:

echo 'Linux ize' | tr -cs 'i' '0'
0i0i0

Tr Příklady příkazů #

V této sekci, budeme pokrývat několik příkladů společné použití tr příkaz.,

Převést malá písmena na velká písmena #

Převod malých písmen na velká písmena, nebo naopak je jeden z typických případů použití tr příkaz. zápasů vše malými písmeny a zápasů všechna velká písmena.

echo 'Linuxize' | tr '' ''
LINUXIZE

Místo třídy znaků, můžete také použít rozsahy:

echo 'Linuxize' | tr 'a-z' 'A-Z'

převést velká písmena na malá písmena, jednoduše přepínat místech sad.,

Odstranit všechny non-numerických znaků #

následující příkaz odstraní všechny nečíselné znaky:

echo "my phone is 123-456-7890" | tr -cd 

je zkratka pro všechny číslice znaky, a pomocí -c možnost, příkaz odstraní všechny non-číselné znaky.,bude vypadat takto:

1234567890

Dejte každé slovo v new line #

, Aby každé slovo v new line, potřebujeme, aby odpovídaly všechny non-alfanumerické znaky a nahradit je s novou řádku:

echo 'GNU is an operating system' | tr -cs '' '\n'
GNUisanoperatingsystem

Odstranit prázdné řádky #

odstranit prázdné řádky jednoduše zmáčknout opakující se znaky konce řádku:

tr -s '\n' < file.txt > new_file.txt

V příkazu výše jsme pomocí přesměrování symbol < předat obsah file.txt tr příkaz., Přesměrování > zapíše výstup příkazu na new_file.txt.

Print $PATH adresáře na samostatný řádek #

$PATH proměnné prostředí je dvojtečkou oddělený seznam adresářů, které vypráví shell, který adresářů pro vyhledávání pro spustitelné soubory zadáte příkaz.,

vytisknout každého adresáře na samostatný řádek, je třeba, aby odpovídaly tlustého střeva (:) a nahradit to s novou řádku:

echo $PATH | tr ':' '\n'
/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin

Závěr #

tr je příkaz pro překlad nebo odstranění znaků.

i když velmi užitečné, tr může pracovat pouze s jednotlivými znaky. Pro složitější porovnávání vzorů a manipulaci s řetězci byste měli použít sednebo awk.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *