Linux-kommandoer

Linux tr Command

Linux tr Command
I Linux er "tr" et innebygd verktøy som kan "oversette, klemme og / eller slette tegn fra standardinndata, skrive til standardutdata" (fra man-siden).

Fra den offisielle beskrivelsen er det lett å forstå verdien av dette verktøyet. Linux kommer med en stor samling med innebygde verktøy. Det er noen spesielle som er veldig nyttige for tekstmanipulering. Vi har allerede dekket en rekke av disse, som Vim, Nano, awk, sed og andre verktøy.

De som jobber med tekster med jevne mellomrom, “tr” vil definitivt være veldig, veldig nyttig. Denne artikkelen vil illustrere den vanligste bruken av “tr” med tilstrekkelige eksempler.

Merk: Opplæringen skal bruke massevis av dummy-filer med tilfeldig innhold. Alle tilfeldige strenger genereres av Tilfeldig.org.

plassering

hvilken tr

Dette er den fulle banen til “tr” -kommandoverktøyet.

Grunnleggende bruk

For å bruke “tr” -verktøyet, må du bruke følgende kommandostruktur.

tr [SET1] [SET2]

Det er forskjellige alternativer og måter å manipulere tekstene på ved hjelp av “tr”. Først, la oss sjekke ut denne demofilen.

kattdemo.tekst

Alle tegnene er med små bokstaver, til høyre? La oss forvandle dem til store bokstaver!

kattdemo.txt | tr [: nedre:] [: øvre:]

Her indikerer den første parameteren for “tr” å utføre en oversettelse på alle små bokstaver i inngangen. Den andre delen forteller at de skal forvandles til store bokstaver ved utgangen.

La oss gjøre det motsatte.

kattdemo1.tekst

kattdemo1.txt | tr [: øvre:] [: nedre:]

Det er også en annen måte å utføre den samme oppgaven på. La oss sjekke det ut.

kattdemo.txt | tr [a-z] [A-Z]

Nå, i stedet for å fortelle “tr” å oversette store og små eller små til store bokstaver, ba vi om å identifisere oppføringer som samsvarer med området “a” til “z” og oversette til deres ekvivalente fra området “A” til “Z”.

Denne lignende metoden kan også brukes til å oversette store og små bokstaver.

kattedemon1.txt | tr [A-Z] [a-z]

Leker med tall

Vi så hvordan vi skal oversette store og små bokstaver, ikke sant? Det er på tide å leke med sifre.

Ved å bruke følgende kommando kan vi enkelt oversette alle sifrene (0-9) til tilsvarende tegn!

kattens demo_digit.tekst

kattens demo_digit.txt | tr [0-9] [a-z]

Rått! Hva med store bokstaver?

kattens demo_digit.txt | tr [0-9] [A-Z]

Enkel, men likevel interessant, ikke sant? Vi kan også transformere tegn til sifre også!

katt demo_lowercase.tekst

katt demo_lowercase.txt | tr [a-z] [0-9]

Åh, det virker som om ting brøt sammen, ikke sant? Vi kan bare bruke 'a' til 'j' for å representere enkeltsifre. Hvis det er noen tegn som er utenfor dette bundet, vil "tr" erstatte tegnet med ']'.

Slette tegn

Som den offisielle beskrivelsen antyder, kan “tr” gjøre mer enn bare oversettelse av tegn. I det følgende eksemplet vil vi sjekke ut hvordan du bruker “tr” til å slette visse tegn.

katt tilfeldig.tekst

La oss nå slette alle tallene fra innholdet.

katt tilfeldig.txt | tr -d [0-9]

Her skal “-d” -flagget fortelle “tr” å slette og [0-9] som angir sifre som skal slettes.

Vi kan også gjøre det med karakterene. Følgende kommando vil beholde alle tallene, men fjerne alle tegnene.

katt tilfeldig.txt | tr -d [a-z]

Hva med å fjerne bare ett bestemt tegn fra filen?

katt demo_lowercase.tekst

katt demo_lowercase.txt | tr -d 'y'

Den slettet alle 'y' oppføringene fra filen.

Klemmer gjentatte tegn

Det er tider når et tegn gjentas sekvensielt. Hvis du har å gjøre med slike irriterende problemer, kan du bare la “tr” ta seg av det! Ved å bruke følgende kommando kan du klemme slike hendelser. Det holder egentlig den opprinnelige forekomsten av karakteren og sletter de ekstra.

Først må du sjekke hvordan demofilen ser ut.

katt duplikat.tekst

Gi innholdet nå til “tr”.

katt duplikat.txt | tr -s [: sifre:]

Her er “-s” -parameteren indikatoren for å utføre “squeeze” -handlingen.

Bryte / slå sammen setninger

La oss sjekke ut demofilen.

flaggermus duplikat.tekst

Den inneholder en setning med mellomrom som deler ordene, ikke sant? La oss dele ordene i nye linjer.

katt duplikat.txt | tr "" "\ n"

Denne kommandoen erstattet alle mellomromstegnene med nye linjer.

La oss slå den ødelagte setningen sammen til en lang setning igjen.

flaggermus duplikat.tekst

katt duplikat.txt | tr "\ n" ""

Oversetter tegn

Akkurat som vi oversatte tegn tidligere, vil vi denne gangen gjøre det samme, men bare med en enkelt karakter.

kattdemo.tekst

I denne filen, la oss endre alle de nye linjetegnene til et semikolon.

kattdemo.txt | tr "\ n" ";"

Jeg måtte pakke det rundt "ekko". Ellers vil det skape noe utgang fordi den siste newline-tegnet også vil bli oversatt til et semikolon.

Det er en annen måte å endre karakter på. Imidlertid er denne vanskeligere å kontrollere.

katt duplikat1.tekst

katt duplikat1.txt | tr -c 'd' 'z'

katt duplikat1.txt | tr -c 'd' 'z'

Wow! La oss pakke det rundt "ekko" for å bedre forstå utdataene.

ekko $ (katt duplikat1.txt | tr -c 'd' 'z')

Hva skjedde her? Ved å bruke “-c” -flagget holder “tr” bare måltegnet uendret. I tilfelle misforhold, vil alle andre tegn bli forvandlet. Her ble alle andre tegn enn 'b' erstattet av 'z'.

Oversetter strenger

“Tr” kan også fungere med strenger. La oss utføre strengutskifting.

katt duplikat1.tekst

katt duplikat1.txt | tr "duplisere" "ikke_duplisere"

Strengen min som skal erstattes er kortere enn strengen som skal erstattes med, så den passet ikke.

Tegnsett

Nå har du lagt merke til at det finnes en rekke tegnsett støttet av “tr”. Mens en rekke av dem ble brukt i eksemplene ovenfor, er andre tegnsett også ganske nyttige. Her er en liste over alle støttede tegnlister.

POSIX tegnsett

  • [: siffer:]: Siffer 0-9
  • [: alfa:]: Alfabetene a-z og A-Z.
  • [: alnum:]: Alfanumeriske tegn
  • [: punkt:]: Punktuasjonssymboler
  • [: space:]: Hvilken som helst blanktegn, for eksempel space, tab, FF, CR, NL, FF, etc.
  • [: øvre:]: Alle store bokstaver
  • [: lower:]: Alle små bokstaver
  • [: cntrl:]: Alle kontrolltegn (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL osv.)

Flere tegnsett

  • [A-Z]: Alle store bokstaver
  • [a-z]: Alle små bokstaver
  • [0-9]: Alle sifre

Siste tanker

Det er mange måter alle disse funksjonene i “tr” kan være til fordel for brukerne. Jeg anbefaler alltid å sjekke ut alle tilgjengelige alternativer og grundige guider på ethvert Linux-verktøy fra deres mann, info og hjelpesider, da de kan tilby mer verdifull kunnskap.

tr - hjelp

mann tr

info tr

Nyt!

Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...