Linux komandas

Linux tr komanda

Linux tr komanda
Linux operētājsistēmā “tr” ir iebūvēts rīks, kas var “tulkot, saspiest un / vai izdzēst rakstzīmes no standarta ievades, rakstot uz standarta izvadi” (no manas lapas).

Pēc oficiālā apraksta ir viegli saprast šī rīka vērtību. Linux nāk klajā ar lielu iebūvētu rīku kolekciju. Ir daži īpaši, kas ir ļoti noderīgi teksta manipulācijām. Mēs jau esam apskatījuši vairākus no tiem, piemēram, Vim, Nano, awk, sed un citus rīkus.

Tie, kas regulāri strādā ar tekstiem, “tr” noteikti būs ļoti, patiešām noderīgi. Šis raksts ar pietiekamiem piemēriem ilustrēs visbiežāk lietoto “tr”.

Piezīme. Apmācībā tiks izmantota daudz manekenu failu ar nejaušu saturu. Visas nejaušās virknes ģenerē Nejaušs.org.

Atrašanās vieta

kas tr

Šis ir komandas “tr” komandas pilnais ceļš.

Pamata lietošana

Lai izmantotu rīku “tr”, jums jāizmanto šāda komandu struktūra.

tr [SET1] [SET2]

Ir dažādas iespējas un veidi, kā manipulēt ar tekstiem, izmantojot “tr”. Sākumā pārbaudīsim šo demonstrācijas failu.

kaķu demonstrācija.txt

Visas rakstzīmes ir pa labi ar mazajiem burtiem? Pārveidosim tos uz lielajiem burtiem!

kaķu demonstrācija.txt | tr [: apakšējais:] [: augšējais:]

Pirmais “tr” parametrs norāda, ka jāveic tulkošana ar visām ievades mazajām rakstzīmēm. Otrajā daļā ir teikts, kā tos pārveidot lielajos burtos pie izejas.

Tagad rīkosimies tieši pretēji.

kaķu demonstrācija.txt

kaķu demonstrācija.txt | tr [: augšējais:] [: apakšējais:]

Ir arī cits veids, kā veikt šo pašu uzdevumu. Pārbaudīsim.

kaķu demonstrācija.txt | tr [a-z] [A-Z]

Tā vietā, lai teiktu “tr” tulkot lielos burtus uz mazajiem burtiem vai mazos uz lielajiem burtiem, mēs teicām identificēt ierakstus, kas atbilst diapazonam no “a” līdz “z”, un tulkot to ekvivalentos no diapazona “A” līdz “Z”.

Šo līdzīgo metodi var izmantot arī lielo un mazo burtu tulkošanai.

kaķu demonstrācija.txt | tr [A-Z] [a-z]

Spēlēšanās ar cipariem

Mēs redzējām, kā tulkot lielos un mazos burtus, labi? Ir pienācis laiks spēlēt ar cipariem.

Izmantojot šo komandu, mēs varam viegli pārtulkot visus ciparus (0–9) to ekvivalentās rakstzīmēs!

kaķis demo_digit.txt

kaķis demo_digit.txt | tr [0-9] [a-z]

Satriecošs! Kā būtu ar lielajiem burtiem?

kaķis demo_digit.txt | tr [0-9] [A-Z]

Vienkārši, tomēr interesanti, pareizi? Varam arī pārveidot rakstzīmes uz cipariem!

kaķu demo_lowercase.txt

kaķu demo_lowercase.txt | tr [a-z] [0-9]

Ak, šķiet, ka lietas sabojājās, pareizi? Mēs varam izmantot tikai “a” līdz “j”, lai attēlotu viencipara skaitļus. Ja ir kāds raksturs, kas atrodas ārpus šīs saites, “tr” aizstās rakstzīmi ar “]”.

Dzēš rakstzīmes

Kā liecina oficiālais apraksts, “tr” var paveikt ne tikai rakstzīmju tulkošanu. Šajā piemērā mēs pārbaudīsim, kā izmantot “tr”, lai izdzēstu noteiktas rakstzīmes.

kaķis nejaušs.txt

Tagad izdzēsīsim visus numurus no satura.

kaķis nejaušs.txt | tr -d [0-9]

Šeit karodziņš “-d” norāda, ka “tr” ir jādzēš, un [0–9] apzīmē dzēšamos ciparus.

Mēs to varam izdarīt arī ar varoņiem. Šī komanda saglabās visus skaitļus, bet noņems visas rakstzīmes.

kaķis nejaušs.txt | tr -d [a-z]

Kā būtu, ja no faila noņemtu tikai vienu konkrētu rakstzīmi?

kaķu demo_lowercase.txt

kaķu demo_lowercase.txt | tr -d 'y'

Tas no faila izdzēsa visus “y” ierakstus.

Saspiežot atkārtotas rakstzīmes

Ir reizes, kad raksturs tiek atkārtots secīgi. Ja jūs nodarbojaties ar šādiem kaitinošiem jautājumiem, vienkārši ļaujiet “tr” rūpēties par to! Izmantojot šādu komandu, jūs varat izspiest šādus gadījumus. Tas būtībā saglabā sākotnējo rakstzīmes parādīšanos un izdzēš papildu rakstzīmes.

Pirmkārt, laiks pārbaudīt, kā izskatās demonstrācijas fails.

kaķa dublikāts.txt

Tagad nododiet saturu “tr”.

kaķa dublikāts.txt | tr -s [: cipari:]

Šeit parametrs “-s” ir indikators, lai veiktu darbību “saspiest”.

Teikumu laušana / apvienošana

Apskatīsim demonstrācijas failu.

sikspārņu dublikāts.txt

Tajā ir teikums ar atstarpēm, kas dala vārdus, labi? Sadalīsim vārdus jaunās rindās.

kaķa dublikāts.txt | tr "" "\ n"

Šī komanda aizstāja visas atstarpes rakstzīmes ar jaunrindas rakstzīmēm.

Vēlreiz sapludināsim salauzto teikumu garajā teikumā.

sikspārņu dublikāts.txt

kaķa dublikāts.txt | tr "\ n" ""

Rakstzīmju tulkošana

Tāpat kā mēs iepriekš tulkojām rakstzīmes, arī šoreiz mēs darīsim to pašu, bet tikai ar vienu rakstzīmi.

kaķu demonstrācija.txt

Šajā failā mainīsim visas jaunās līnijas rakstzīmes par semikolu.

kaķu demonstrācija.txt | tr "\ n" ";"

Man nācās to aptīt ap “atbalss”. Pretējā gadījumā tas radītu zināmu izvadi, jo pēdējais jaunās līnijas raksturs arī tiktu tulkots ar semikolu.

Ir atšķirīgs rakstzīmju maiņas veids. Tomēr šo ir grūtāk kontrolēt.

kaķa dublikāts.txt

kaķa dublikāts.txt | tr -c 'd' 'z'

kaķa dublikāts.txt | tr -c 'd' 'z'

Oho! Apskatīsim to ap "atbalss", lai labāk izprastu rezultātu.

echo $ (kaķa dublikāts1.txt | tr -c 'd' 'z')

Kas te notika? Izmantojot “-c” karodziņu, “tr” nemainīs mērķa rakstzīmi. Neatbilstības gadījumā katrs otrais raksturs tiks pārveidots. Šeit jebkura rakstzīme, kas nav “b”, tika aizstāta ar “z”.

Stīgu tulkošana

“Tr” var strādāt arī ar stīgām. Veiksim virkņu nomaiņu.

kaķa dublikāts.txt

kaķa dublikāts.txt | tr "duplicate" "not_duplicate"

Mana virkne, kas jāaizstāj, ir īsāka nekā virkne, ar kuru jāaizstāj, tāpēc tā nederēja.

Rakstzīmju kopas

Tagad esat pamanījis, ka ir daudz rakstzīmju kopu, ko atbalsta “tr”. Lai gan vairāki no tiem tika izmantoti iepriekš minētajos piemēros, citas rakstzīmju kopas arī ir diezgan noderīgas. Šeit ir visu atbalstīto rakstzīmju sarakstu saraksts.

POSIX rakstzīmju kopas

  • [: cipars:]: cipari 0–9
  • [: alfa:]: alfabēti a-z un A-Z.
  • [: alnum:]: burtciparu rakstzīmes
  • [: punct:]: Pieturzīmes
  • [: atstarpe:]: jebkurš atstarpes rakstzīme, piemēram, atstarpe, cilne, FF, CR, NL, FF utt.
  • [: augšējais:]: visi lielie alfabēti
  • [: apakšējais:]: visi mazie alfabēti
  • [: cntrl:]: visas vadības rakstzīmes (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL utt.)

Papildu rakstzīmju kopas

  • [A-Z]: visi lielie alfabēti
  • [a-z]: visi mazie alfabēti
  • [0-9]: visi cipari

Pēdējās domas

Ir daudz veidu, kā visas šīs “tr” funkcijas var dot labumu lietotājiem. Es vienmēr iesaku pārbaudīt visas pieejamās opcijas un padziļinātās rokasgrāmatas par jebkuru Linux rīku no viņu vīrieša, informācijas un palīdzības lapām, jo ​​viņi var piedāvāt vērtīgākas zināšanas.

tr - palīdzība

vīrietis tr

info tr

Izbaudi!

Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...
Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...
Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...