Ukazi za Linux

Linux tr Command

Linux tr Command
V Linuxu je "tr" vgrajeno orodje, ki lahko "prevede, stisne in / ali izbriše znake iz standardnega vnosa, zapiše v standardni izhod" (s strani man).

Iz uradnega opisa je enostavno razumeti vrednost tega orodja. Linux ima veliko zbirko vgrajenih orodij. Obstaja nekaj posebnih, ki so nadvse uporabni za manipulacijo z besedilom. Številna orodja smo že obravnavali, kot so Vim, Nano, awk, sed in druga orodja.

Tisti, ki redno delajo z besedili, bo "tr" zagotovo zelo, zelo koristen. Ta članek bo z zadostnimi primeri ponazoril najpogostejšo uporabo "tr".

Opomba: Vadnica bo uporabila veliko lažnih datotek z naključno vsebino. Vse naključne nize generira Naključen.org.

Lokacija

ki tr

To je celotna pot ukaznega orodja "tr".

Osnovna uporaba

Za uporabo orodja "tr" morate uporabiti naslednjo ukazno strukturo.

tr [SET1] [SET2]

Obstajajo različne možnosti in načini za obdelavo besedil z uporabo "tr". Najprej si oglejmo to predstavitveno datoteko.

demo mačka.txt

Vsi znaki so v malem, desno? Pretvorimo jih v velike črke!

demo mačka.txt | tr [: spodnji:] [: zgornji:]

Tu prvi parameter »tr« označuje izvedbo prevoda za vse male črke vnosa. Drugi del govori, da jih na izhodu preoblikujemo v velike črke.

Zdaj pa naredimo ravno nasprotno.

mačka demo1.txt

mačka demo1.txt | tr [: zgornji:] [: spodnji:]

Obstaja tudi drug način za izvajanje te iste naloge. Preverimo.

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

Zdaj, namesto da bi tr trdili, naj prevede veliko v malo ali malo v veliko, smo povedali, naj identificiramo vnose, ki se ujemajo z obsegom od „a“ do „z“, in prevedemo v njihov ekvivalent iz obsega „A“ v „Z“.

To podobno metodo lahko uporabimo tudi za prevajanje velikih in malih črk.

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

Igranje s številkami

Videli smo, kako prevesti velike črke v male, desno? Čas je, da se poigramo s številkami.

Z naslednjim ukazom lahko vse številke (0-9) enostavno prevedemo v enakovredne znake!

mačka demo_digit.txt

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

Super! Kaj pa velike?

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

Preprosto, a zanimivo, kajne? Znake lahko pretvorimo tudi v številke!

mačka demo_lowercase.txt

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

Oh, zdi se, kot da so se stvari pokvarile, kajne? No, od 'a' do 'j' lahko uporabimo samo za predstavitev enoštevk. Če je kateri koli znak zunaj te meje, bo "tr" znak nadomestil z ']'.

Brisanje znakov

Kot je razvidno iz uradnega opisa, lahko »tr« naredi več kot le prevajanje znakov. V naslednjem primeru bomo preverili, kako uporabiti "tr" za brisanje določenih znakov.

mačka naključno.txt

Zdaj pa izbrišimo vse številke iz vsebine.

mačka naključno.txt | tr -d [0-9]

Tu je zastavica "-d" povedala "tr", da se izbriše, in [0-9], ki označuje številke, ki jih želite izbrisati.

To lahko storimo tudi z liki. Naslednji ukaz bo obdržal vse številke, vendar bo odstranil vse znake.

mačka naključno.txt | tr -d [a-z]

Kaj pa, če iz datoteke odstranite samo en sam določen znak?

mačka demo_lowercase.txt

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

Iz datoteke je izbrisal vse vnose 'y'.

Stiskanje ponavljajočih se znakov

Včasih se znak zaporedno ponovi. Če se ukvarjate s tako nadležnimi težavami, samo dovolite, da "tr" poskrbi za to! Z naslednjim ukazom lahko stisnete takšne dogodke. V bistvu ohrani začetni pojav znaka in izbriše dodatne.

Najprej je treba preveriti, kako izgleda predstavitvena datoteka.

mačka dvojnik.txt

Zdaj posredujte vsebino na "tr".

mačka dvojnik.txt | tr -s [: številke:]

Tu je parameter “-s” indikator za izvajanje akcije “stiskanje”.

Razbijanje / spajanje stavkov

Oglejmo si predstavitveno datoteko.

netopir dvojnik.txt

Vsebuje stavek s presledki, ki delijo besede, desno? Razdelimo besede v nove vrstice.

mačka dvojnik.txt | tr "" "\ n"

Ta ukaz je vse presledke zamenjal z znaki za novo vrstico.

Ponovno združimo lomljeni stavek v dolg.

netopir dvojnik.txt

mačka dvojnik.txt | tr "\ n" ""

Prevajanje znakov

Tako kot smo prej prevajali znake, bomo tudi tokrat storili enako, vendar samo z enim znakom.

demo mačka.txt

V tej datoteki spremenimo vse znake nove vrstice v podpičje.

demo mačka.txt | tr "\ n" ";"

Moral sem ga oviti okoli "odmeva". V nasprotnem primeru bi ustvaril nekaj izhoda, ker bi bil tudi zadnji znak nove vrstice preveden v podpičje.

Obstaja drugačen način spreminjanja likov. Vendar je to težje nadzorovati.

mačka dvojnik1.txt

mačka dvojnik1.txt | tr -c 'd' 'z'

mačka dvojnik1.txt | tr -c 'd' 'z'

Vau! Zavijemo ga okrog "odmeva", da bomo bolje razumeli rezultate.

echo $ (mačka dvojnik1.txt | tr -c 'd' 'z')

Kaj se je zgodilo tukaj? Z uporabo zastavice "-c" bo "tr" ohranil le ciljni znak nespremenjen. V primeru neusklajenosti se bodo spremenili vsi drugi znaki. Tu je bil kateri koli znak, ki ni "b", nadomeščen z "z".

Prevajanje nizov

"Tr" lahko deluje tudi z nizi. Izvedimo zamenjavo nizov.

mačka dvojnik1.txt

mačka dvojnik1.txt | tr "duplicate" "not_duplicate"

Moj niz, ki ga želim zamenjati, je krajši od niza, s katerim ga je treba zamenjati, zato ni ustrezal.

Nabori znakov

Zdaj ste opazili, da številke naborov znakov podpira »tr«. Medtem ko so bili številni uporabljeni v zgornjih primerih, so v pomoč tudi drugi nabori znakov. Tu je seznam vseh podprtih seznamov znakov.

Nabori znakov POSIX

  • [: številka:]: Števke od 0 do 9
  • [: alfa:]: Abecedi a-z in A-Z.
  • [: alnum:]: Črkovno-številčni znaki
  • [: punct:]: Ločila
  • [: presledek:]: Kateri koli presledek, na primer presledek, zavihek, FF, CR, NL, FF itd.
  • [: zgornji:]: Vse velike črke
  • [: spodnja:]: Vse male črke
  • [: cntrl:]: Vsi kontrolni znaki (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL itd.).)

Dodatni nabori znakov

  • [A-Z]: Vse velike črke
  • [a-z]: Vse male črke
  • [0-9]: Vse številke

Zadnje misli

Obstajajo številni načini, kako lahko vse te značilnosti "tr" koristijo uporabnikom. Vedno priporočam, da si ogledate vse razpoložljive možnosti in poglobljene vodnike o katerem koli orodju Linux s strani z informacijami, informacijami in pomočjo, saj lahko ponudijo dragocenejše znanje.

tr --pomoč

moški tr

info tr

Uživajte!

Kako zajeti in pretakati svojo igralno sejo v Linuxu
V preteklosti je bilo igranje iger le hobi, sčasoma pa je igralniška industrija zabeležila veliko rast glede tehnologije in števila igralcev. Občinstv...
Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...
Kako prikazati prekrivanje zaslonskega menija v celozaslonskih aplikacijah in igrah za Linux
Igranje celozaslonskih iger ali uporaba aplikacij v celozaslonskem načinu brez motenj vam lahko odreže ustrezne sistemske informacije, ki so vidne na ...