tr je příkaz v unixových operačních systémech pro nahrazování zadaných znaků jinými nebo jejich vypouštění. Jeho jméno je zkratka z anglického translate nebo transliterate.
Program tr funguje jako filtr – čte proud bytů ze standardního vstupu a výsledek zapisuje na standardní výstup, aniž by měnil vstupní soubor. Pro nahrazování znaků je třeba zadat dva parametry; první zadává množinu znaků, které se mají nahrazovat, a druhý množinu znaků, kterými se budou nahrazovat.
Například tr abcd jkmn převádí všechny znaky a na j, b na k, c na m a d na n:
$ echo abeceda | tr a-d jkmn jkemenj
(Abecední posloupnost znaků lze zapsat pomocí rozsahu se spojovníkem (znak minus).)
Ve verzi příkazu tr podle standardu POSIX závisí množina zapsaná pomocí rozsahu na abecedním řazení v použitém národním nastavení, proto je nutné zvážit, zda se použití rozsahů nevyhnout, aby při spuštění skriptu s jiným národním nastavením nedošlo k nežádoucím efektům. Ve verzi podle standardu POSIX lze často místo rozsahů použít znakové množiny, jako například [:alpha:].
Volba -s způsobí, že tr bude nahrazovat posloupnost stejných znaků jediným znakem. Například
tr -s '\n'
nahrazuje posloupnosti jednoho nebo více znaků konce řádku jediným.
Volba -d způsobí, že tr bude vypouštět všechny znaky ze zadané množiny. V tomto případě se jako parametr zadává pouze jedna množina znaků. Následující příkaz bude odstraňovat znaky návrat vozíku:
tr -d '\r'
Volba -c způsobí, že se použije doplněk první množiny znaků. Vyvolání
tr -cd '[:alnum:]'
proto odstraní všechny nealfanumerické znaky.
Většina verzí příkazu tr, včetně GNU tr a klasického unixového tr, pracuje s jednobytovými znaky a není kompatibilní s Unicode. Výjimkou je implementace z Heirloom Toolchest, která obsahuje základní podpora Unicode.
Ruby a Perl mají interní operátor tr, který funguje podobně jako příkaz tr. Příkaz string map v Tcl je obecnější, protože umožňuje převádět řetězce na řetězce, zatímco příkaz tr převádí pouze znaky na znaky.
Odkazy
Reference
Literatura
Související články Sed Seznam unixových utilit GNU Core Utilities
Externí odkazy tr(1) – Manuálová stránka příkazu tr z 8. vydání OS Unix. Manuálová stránka programu tr Příklady použití příkazu tr na examplenow.com
Kategorie:Standardní unixové příkazy Kategorie:Svobodný software