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

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.

Reference

editovat

V tomto článku byl použit překlad textu z článku Tr (Unix) na anglické Wikipedii.

Literatura

editovat
  • BRANDEJS, Michal. UNIX – LINUX. Praktický průvodce. Praha: Grada Publishing, 1996. 341 s. ISBN 80-7169-170-4. 

Související články

editovat

Externí odkazy

editovat