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.
trObstajajo 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.txtmač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.txtmač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.txtmač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.txtmač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.txtmač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.txtmač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.txtmač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!