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.

tr
Typ softwarustandardní 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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.