tr (Unix)

Z Wikipedie, otevřené encyklopedie

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 md na n.

Množinu znaků lze pomocí pomlčky (znaku minus) zapsat jako rozsah. Předchozí příklad lze zapsat:

tr 'a-d' 'jkmn'

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.

RubyPerl mají interní operátor tr, který funguje podobně jako příkaz tr. Příkaz string mapTcl 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