Linux-kommandoer

Linux tr-kommando

Linux tr-kommando
I Linux er "tr" et indbygget værktøj, der kan "oversætte, klemme og / eller slette tegn fra standardinput, skrive til standardoutput" (fra mandesiden).

Fra den officielle beskrivelse er det let at forstå værdien af ​​dette værktøj. Linux kommer med en stor samling af indbyggede værktøjer. Der er nogle specielle, der er super nyttige til tekstmanipulation. Vi har allerede dækket et antal af dem, som Vim, Nano, awk, sed og andre værktøjer.

De, der arbejder med tekster med jævne mellemrum, "tr" vil bestemt være virkelig, virkelig nyttigt. Denne artikel illustrerer den mest almindelige brug af “tr” med tilstrækkelige eksempler.

Bemærk: Vejledningen bruger et ton dummy-filer med tilfældigt indhold. Alle tilfældige strenge genereres af Tilfældig.org.

Beliggenhed

hvilken tr

Dette er den fulde sti til “tr” -kommandoværktøjet.

Grundlæggende brug

For at bruge “tr” -værktøjet skal du bruge følgende kommandostruktur.

tr [SET1] [SET2]

Der er forskellige muligheder og måder at manipulere teksterne ved hjælp af "tr". Lad os først tjekke denne demo-fil.

kat demo.txt

Alle tegn er med små bogstaver, højre? Lad os omdanne dem til store bogstaver!

kat demo.txt | tr [: nederste:] [: øverste:]

Her indikerer den første parameter for “tr” at udføre en oversættelse af alle små bogstaver i input. Den anden del fortæller at transformere dem til store bogstaver ved udgangen.

Lad os nu gøre det modsatte.

kat demo1.txt

kat demo1.txt | tr [: øvre:] [: nedre:]

Der er også en anden måde at udføre den samme opgave på. Lad os tjekke det ud.

kat demo.txt | tr [a-z] [A-Z]

I stedet for at fortælle "tr" at oversætte store til små bogstaver eller små til store bogstaver, fortalte vi at identificere poster, der matcher området "a" til "z" og oversætte til deres ækvivalente fra området "A" til "Z".

Denne lignende metode kan også bruges til at oversætte store og små bogstaver.

kat demo1.txt | tr [A-Z] [a-z]

Leger med tal

Vi så, hvordan man oversætter store bogstaver til små bogstaver, højre? Det er tid til at lege med cifre.

Ved hjælp af følgende kommando kan vi nemt oversætte alle cifrene (0-9) til deres ækvivalente tegn!

kat demo_digit.txt

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

fantastisk! Hvad med store bogstaver?

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

Enkel, men alligevel interessant? Vi kan også omdanne tegn til cifre!

kat demo_lowercase.txt

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

Åh åh, det virker som om ting brød sammen, ikke? Vi kan kun bruge 'a' til 'j' til at repræsentere enkeltcifre. Hvis der er nogen karakter, der er ude af denne bund, erstatter "tr" tegnet med ']'.

Sletning af tegn

Som den officielle beskrivelse antyder, kan "tr" gøre mere end bare oversættelse af tegn. I det følgende eksempel tjekker vi, hvordan du bruger “tr” til at slette bestemte tegn.

kat tilfældig.txt

Lad os nu slette alle numrene fra indholdet.

kat tilfældig.txt | tr -d [0-9]

Her skal “-d” -flagget fortælle “tr” at slette og [0-9] angive cifre, der skal slettes.

Vi kan også gøre det med tegnene. Den følgende kommando beholder alle numrene, men fjerner alle tegnene.

kat tilfældig.txt | tr -d [a-z]

Hvad med at fjerne kun et enkelt specifikt tegn fra filen?

kat demo_lowercase.txt

kat demo_lowercase.txt | tr -d 'y'

Det slettede alle 'y' poster fra filen.

Klemme gentagne tegn

Der er tidspunkter, hvor et tegn gentages sekventielt. Hvis du har at gøre med sådanne irriterende problemer, skal du bare lade “tr” tage sig af det! Ved hjælp af følgende kommando kan du presse sådanne hændelser. Det holder i det væsentlige den oprindelige forekomst af tegnet og sletter de ekstra.

Først tid til at kontrollere, hvordan demo-filen ser ud.

kat duplikat.txt

Send nu indholdet til “tr”.

kat duplikat.txt | tr -s [: cifre:]

Her er parameteren "-s" indikatoren for udførelse af "squeeze" -handlingen.

Breaking / fletning af sætninger

Lad os tjekke demofilen.

bat duplikat.txt

Den indeholder en sætning med mellemrum, der deler ordene, højre? Lad os opdele ordene i nye linjer.

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

Denne kommando erstattede alle mellemrumstegn med nye linjetegn.

Lad os slå den brudte sætning sammen til en lang sætning igen.

bat duplikat.txt

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

Oversættelse af tegn

Ligesom vi har oversat tegn før, denne gang, gør vi det samme, men kun med et enkelt tegn.

kat demo.txt

Lad os i denne fil ændre alle de nye linjetegn til et semikolon.

kat demo.txt | tr "\ n" ";"

Jeg var nødt til at pakke det rundt "ekko". Ellers ville det skabe noget output, fordi det sidste nye linjetegn også ville blive oversat til et semikolon.

Der er en anden måde at skifte karakter på. Denne er dog sværere at kontrollere.

kat duplikat1.txt

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

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

Wow! Lad os pakke det rundt "ekko" for bedre at forstå output.

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

Hvad skete der her? Ved hjælp af “-c” -fanen vil “tr” kun holde målkarakteren uændret. I tilfælde af uoverensstemmelse vil hver anden karakter blive transformeret. Her blev ethvert andet tegn end 'b' erstattet af 'z'.

Oversætter strenge

“Tr” kan også arbejde med strenge. Lad os udføre strengudskiftning.

kat duplikat1.txt

kat duplikat1.txt | tr "duplikat" "ikke_duplikat"

Min streng, der skal udskiftes, er kortere end den streng, der skal udskiftes med, så den passede ikke.

Tegnsæt

Nu har du bemærket, at der er et antal tegnsæt, der understøttes af "tr". Mens et antal af dem blev brugt i ovenstående eksempler, er andre tegnsæt også meget nyttige. Her er en liste over alle de understøttede tegnelister.

POSIX tegnsæt

  • [: ciffer:]: Cifre 0-9
  • [: alfa:]: Alfabeter a-z og A-Z.
  • [: alnum:]: Alfanumeriske tegn
  • [: punkt:]: Tegnsætningssymboler
  • [: mellemrum:]: Ethvert mellemrumstegn, f.eks. mellemrum, fane, FF, CR, NL, FF osv.
  • [: øvre:]: Alle store bogstaver
  • [: nedre:]: Alle små bogstaver
  • [: cntrl:]: Alle kontroltegn (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL osv.)

Yderligere tegnsæt

  • [A-Z]: Alle store bogstaver
  • [a-z]: Alle små bogstaver
  • [0-9]: Alle cifre

Afsluttende tanker

Der er mange måder, alle disse funktioner i "tr" kan gavne brugerne. Jeg anbefaler altid at tjekke alle de tilgængelige muligheder og dybdegående guider om ethvert Linux-værktøj fra deres mand, info og hjælpesider, da de kan tilbyde mere værdifuld viden.

tr - hjælp

mand tr

info tr

god fornøjelse!

Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....