tr (Unix)
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.
Typ softwaru | standardní UNIXová utilita či příkaz |
---|---|
Některá data mohou pocházet z datové položky. |
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
V tomto článku byl použit překlad textu z článku Tr (Unix) na anglické Wikipedii.
Literatura
- BRANDEJS, Michal. UNIX – LINUX. Praktický průvodce. Praha: Grada Publishing, 1996. 341 s. ISBN 80-7169-170-4.
Související články
Externí odkazy
- tr(1) – Manuálová stránka příkazu tr z 8. vydání OS Unix.
- Manuálová stránka programu tr – neplatný odkaz !
- Příklady použití příkazu tr na examplenow.com