Príkazy pre Linux

Príkaz Linux tr

Príkaz Linux tr
V systéme Linux je „tr“ zabudovaný nástroj, ktorý umožňuje „prekladať, stláčať a / alebo mazať znaky zo štandardného vstupu, zápis na štandardný výstup“ (z manuálovej stránky).

Z oficiálneho popisu je ľahké pochopiť hodnotu tohto nástroja. Linux prichádza s veľkou zbierkou zabudovaných nástrojov. Existuje niekoľko špeciálnych, ktoré sú mimoriadne užitočné na manipuláciu s textom. Už sme sa zaoberali niekoľkými z nich, napríklad nástrojmi Vim, Nano, awk, sed a ďalšími.

Tí, ktorí pravidelne pracujú s textami, „tr“ budú určite skutočne, skutočne užitoční. Tento článok ilustruje najbežnejšie použitie výrazu „tr“ na dostatočných príkladoch.

Poznámka: V tomto výučbe sa použije veľa fiktívnych súborov s náhodným obsahom. Všetky náhodné reťazce sú generované Náhodné.org.

Poloha

ktoré tr

Toto je úplná cesta príkazového nástroja „tr“.

Základné použitie

Na použitie nástroja „tr“ musíte použiť nasledujúcu štruktúru príkazov.

tr [SET1] [SET2]

Existujú rôzne možnosti a spôsoby, ako manipulovať s textami pomocou znaku „tr“. Najskôr sa pozrime na tento ukážkový súbor.

ukážka mačky.TXT

Všetky znaky sú malé, pravé? Transformujme ich na veľké písmená!

ukážka mačky.txt | tr [: spodný:] [: horný:]

Prvý parameter „tr“ tu označuje vykonanie prekladu všetkých malých znakov vstupu. Druhá časť hovorí o ich transformácii na veľké písmená na výstupe.

Teraz urobme opak.

mačka demo1.TXT

ukážka mačky1.txt | tr [: horný:] [: dolný:]

Existuje aj iný spôsob vykonávania tejto istej úlohy. Poďme to skontrolovať.

ukážka mačky.txt | tr [a-z] [A-Z]

Teraz, namiesto toho, aby sme povedali „tr“, aby preložil veľké písmená na malé písmená alebo malé písmená na veľké písmená, povedali sme, aby sme identifikovali položky zodpovedajúce rozsahu „a“ až „z“ a preložili ich ekvivalent z rozsahu „A“ do „Z“.

Táto podobná metóda sa dá použiť aj na preklad veľkých a malých písmen.

mačka demo1.txt | tr [A-Z] [a-z]

Hra s číslami

Videli sme, ako preložiť veľké a malé písmená vpravo? Je čas pohrať sa s číslicami.

Pomocou nasledujúceho príkazu môžeme ľahko preložiť všetky číslice (0-9) do ich ekvivalentných znakov!

mačka demo_digit.TXT

mačka demo_digit.txt | tr [0-9] [a-z]

Úžasné! Čo tak veľké?

mačka demo_digit.txt | tr [0-9] [A-Z]

Jednoduché, ale zaujímavé, že? Môžeme tiež transformovať znaky na číslice!

mačka demo_lowercase.TXT

mačka demo_lowercase.txt | tr [a-z] [0-9]

Zdá sa, že sa veci pokazili, že? Môžeme použiť iba znaky „a“ ​​až „j“ na vyjadrenie jednotlivých číslic. Ak je nejaký znak mimo túto hranicu, znak „tr“ nahradí znak znakom „]“.

Mazanie znakov

Ako naznačuje oficiálny popis, výraz „tr“ dokáže viac než len preklad znakov. V nasledujúcom príklade sa pozrieme na to, ako používať znak „tr“ na odstránenie určitých znakov.

mačka náhodne.TXT

Teraz vymažme všetky čísla z obsahu.

mačka náhodne.txt | tr -d [0-9]

Príznak „-d“ tu má povedať „tr“, aby sa odstránili, a [0-9] označuje číslice, ktoré sa majú vymazať.

To môžeme urobiť aj s postavami. Nasledujúci príkaz zachová všetky čísla, ale odstráni všetky znaky.

mačka náhodne.txt | tr -d [a-z]

Čo tak odstrániť zo súboru iba jeden konkrétny znak?

mačka demo_lowercase.TXT

mačka demo_lowercase.txt | tr -d 'y'

Zo súboru sa odstránili všetky položky typu „y“.

Stláčanie opakujúcich sa znakov

Sú chvíle, kedy sa postava opakuje postupne. Ak máte do činenia s takýmito nepríjemnými problémami, nechajte to na starosti „tr“! Pomocou nasledujúceho príkazu môžete také výskyty stlačiť. V podstate zachováva počiatočný výskyt postavy a odstraňuje ďalšie.

Najskôr je potrebné skontrolovať, ako vyzerá ukážkový súbor.

duplikát mačky.TXT

Teraz odovzdajte obsah „tr“.

duplikát mačky.txt | tr -s [: číslice:]

Tu je parameter „-s“ indikátorom na vykonanie akcie „squeeze“.

Rozbíjanie / spájanie viet

Pozrime sa na ukážkový súbor.

netopier duplikát.TXT

Obsahuje vetu s medzerami rozdeľujúcimi slová, vpravo? Rozdeľme slová na nové riadky.

duplikát mačky.txt | tr "" "\ n"

Tento príkaz nahradil všetky znaky medzery znakmi nového riadku.

Spojme zlomenú vetu opäť do dlhej vety.

netopier duplikát.TXT

duplikát mačky.txt | tr "\ n" ""

Preklady znakov

Rovnako ako sme prekladali znaky predtým, aj tentokrát urobíme to isté, ale iba s jedným znakom.

ukážka mačky.TXT

V tomto súbore zmeňme všetky znaky nového riadku na bodkočiarku.

ukážka mačky.txt | tr "\ n" ";"

Musel som to zabaliť okolo „ozveny“. Inak by to vytvorilo nejaký výstup, pretože posledný znak nového riadku by sa tiež preložil do bodkočiarky.

Existuje iný spôsob zmeny postáv. Tento je však ťažšie ovládateľný.

duplikát mačky1.TXT

duplikát mačky1.txt | tr -c 'd' z '

duplikát mačky1.txt | tr -c 'd' z '

Wow! Pre lepšie pochopenie výstupu to zabalíme do výrazu „echo“.

echo $ (duplikát mačky1.txt | tr -c 'd' z ')

Čo sa tu stalo? Pomocou príznaku „-c“ ponechá výraz „tr“ iba nezmenený cieľový znak. V prípade nesúladu sa každá ďalšia postava transformuje. Tu bol akýkoľvek znak okrem „b“ nahradený „z“.

Preklad reťazcov

“Tr” môže tiež pracovať s reťazcami. Vykonajme výmenu strún.

duplikát mačky1.TXT

duplikát mačky1.txt | tr „duplikát“ „nie_duplikát“

Moja struna, ktorú treba vymeniť, je kratšia ako struna, ktorá sa má nahradiť, takže sa nezmestila.

Sady znakov

Už ste si všimli, že znak „tr“ podporuje množstvo znakových sád. Aj keď ich vo vyššie uvedených príkladoch bolo použitých niekoľko, celkom užitočné sú aj iné znakové sady. Tu je zoznam všetkých podporovaných zoznamov znakov.

Znakové sady POSIX

  • [: digit:]: číslice 0-9
  • [: alpha:]: Abecedy a-z a A-Z.
  • [: alnum:]: Alfanumerické znaky
  • [: punct:]: Interpunkčné symboly
  • [: medzera:]: ľubovoľný znak medzery, napríklad medzera, tabulátor, FF, CR, NL, FF atď.
  • [: upper:]: Všetky veľké písmená abecedy
  • [: lower:]: Všetky malé abecedy
  • [: cntrl:]: Všetky riadiace znaky (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL atď.)

Ďalšie sady znakov

  • [A-Z]: Všetky veľké písmená abecedy
  • [a-z]: Všetky malé abecedy
  • [0-9]: všetky číslice

Záverečné myšlienky

Existuje veľa spôsobov, ako môžu všetky tieto vlastnosti produktu „tr“ prospieť používateľom. Vždy odporúčam pozrieť si všetky dostupné možnosti a podrobných sprievodcov o akomkoľvek nástroji pre Linux z ich manuálových, informačných a pomocných stránok, pretože môžu ponúknuť cennejšie vedomosti.

tr - pomoc

muž tr

info tr

Užite si to!

Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z najpopulárnejších obchodných simulačných hier. V tejto hre musíte vytvoriť úžasné dopravné podnikanie. Začnete však na začiatku ok...
Hry SuperTuxKart pre Linux
SuperTuxKart pre Linux
SuperTuxKart je vynikajúci titul navrhnutý tak, aby vám priniesol zážitok z hry Mario Kart zadarmo na vašom systéme Linux. Je to dosť náročné a zábavn...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...