Linux-kommandon

Linux tr-kommando

Linux tr-kommando
I Linux är "tr" ett inbyggt verktyg som kan "översätta, pressa och / eller radera tecken från standardinmatning, skriva till standardutdata" (från man-sidan).

Från den officiella beskrivningen är det lätt att förstå värdet av detta verktyg. Linux kommer med en stor samling inbyggda verktyg. Det finns några speciella som är mycket användbara för textmanipulation. Vi har redan täckt ett antal av dessa, som Vim, Nano, awk, sed och andra verktyg.

De som arbetar med texter regelbundet, “tr” kommer definitivt att vara riktigt, riktigt bra. Den här artikeln illustrerar den vanligaste användningen av ”tr” med tillräckliga exempel.

Obs! Tutorialen kommer att använda massor av dummyfiler med slumpmässigt innehåll. Alla slumpmässiga strängar genereras av Slumpmässig.org.

Plats

vilken tr

Detta är den fullständiga sökvägen för kommandoverktyget “tr”.

Grundläggande användning

För att använda “tr” -verktyget måste du använda följande kommandostruktur.

tr [SET1] [SET2]

Det finns olika alternativ och sätt att manipulera texterna med "tr". Låt oss först kolla in den här demo-filen.

kattdemo.Text

Alla karaktärer är med gemener, höger? Låt oss förvandla dem till versaler!

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

Här indikerar den första parametern för “tr” att utföra en översättning på alla små bokstäver i ingången. Den andra delen talar om att förvandla dem till versaler vid utgången.

Nu, låt oss göra det motsatta.

kattdemo1.Text

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

Det finns också ett annat sätt att utföra samma uppgift. Låt oss kolla upp det.

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

Nu, istället för att säga till "tr" att översätta versaler till gemener eller små bokstäver till versaler, berättade vi att identifiera poster som matchar intervallet "a" till "z" och översätta till motsvarande från intervallet "A" till "Z".

Denna liknande metod kan också användas för att översätta stora och små bokstäver.

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

Leker med siffror

Vi såg hur man översätter versaler till gemener, höger? Det är dags att leka med siffror.

Med hjälp av följande kommando kan vi enkelt översätta alla siffror (0-9) till motsvarande tecken!

katt demo_digit.Text

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

Grymt bra! Vad sägs om stora bokstäver?

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

Enkelt, men ändå intressant, rätt? Vi kan också förvandla tecken till siffror också!

katt demo_lowercase.Text

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

Det verkar som om saker gick sönder, eller hur? Vi kan bara använda 'a' till 'j' för att representera enstaka siffror. Om det finns någon karaktär som är utanför denna gräns, kommer "tr" att ersätta karaktären med ']'.

Tar bort tecken

Som den officiella beskrivningen antyder kan "tr" göra mer än bara översättning av tecken. I följande exempel ska vi kolla in hur man använder “tr” för att radera vissa tecken.

slumpmässig katt.Text

Låt oss nu ta bort alla siffror från innehållet.

slumpmässig katt.txt | tr -d [0-9]

Här är "-d" -flaggan att säga till "tr" att radera och [0-9] som anger siffror som ska tas bort.

Vi kan också göra det med karaktärerna. Följande kommando behåller alla siffror men tar bort alla tecken.

slumpmässig katt.txt | tr -d [a-z]

Vad sägs om att ta bort en enda specifik karaktär från filen?

katt demo_lowercase.Text

katt demo_lowercase.txt | tr -d 'y'

Den raderade alla y-poster från filen.

Klämmer upprepade tecken

Det finns tillfällen då en karaktär upprepas i följd. Om du har att göra med sådana irriterande problem, låt “tr” ta hand om det! Med följande kommando kan du pressa sådana händelser. Det håller i huvudsak karaktärens ursprungliga förekomst och raderar de ytterligare.

Första gången för att kontrollera hur demofilen ser ut.

kattdublik.Text

Ge nu innehållet till “tr”.

kattdublik.txt | tr -s [: siffror:]

Här är parametern "-s" en indikator för att utföra "squeeze" -åtgärden.

Bryta / slå samman meningar

Låt oss kolla in demofilen.

bat duplikat.Text

Den innehåller en mening med mellanslag som delar orden, höger? Låt oss dela upp orden i nya rader.

kattdublik.txt | tr "" "\ n"

Detta kommando ersatte alla mellanslagstecken med newline-tecken.

Låt oss slå samman den trasiga meningen till en lång mening igen.

bat duplikat.Text

kattdublik.txt | tr "\ n" ""

Översätta tecken

Precis som vi översatte karaktärer tidigare, den här gången, kommer vi att göra detsamma men bara med en enda karaktär.

kattdemo.Text

I den här filen, låt oss ändra alla nya linjetecken till ett semikolon.

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

Jag var tvungen att linda den runt "eko". Annars skulle det skapa viss utdata eftersom den sista newline-tecknet också skulle översättas till ett semikolon.

Det finns ett annat sätt att byta karaktär. Den här är dock svårare att kontrollera.

katt duplikat1.Text

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

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

Wow! Låt oss linda det runt "eko" för att bättre förstå produktionen.

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

Vad hände här? Med "-c" -flaggan kommer "tr" bara att hålla målkaraktären oförändrad. I händelse av oöverensstämmelse kommer alla andra karaktärer att transformeras. Här ersattes någon annan karaktär än 'b' med 'z'.

Översätta strängar

"Tr" kan också fungera med strängar. Låt oss utföra strängbyte.

katt duplikat1.Text

katt duplikat1.txt | tr "duplicera" "not_duplicate"

Min sträng som ska bytas ut är kortare än strängen som ska ersättas med, så den passade inte.

Teckenuppsättningar

Nu har du märkt att det finns ett antal teckenuppsättningar som stöds av “tr”. Medan ett antal av dem användes i ovanstående exempel, är andra teckenuppsättningar också mycket hjälpsamma. Här är en lista över alla teckenlistor som stöds.

POSIX teckenuppsättningar

  • [: siffra:]: siffror 0-9
  • [: alfa:]: Alfabet a-z och A-Z.
  • [: alnum:]: Alfanumeriska tecken
  • [: punkt:]: skiljetecken
  • [: space:]: Vilket mellanslag som helst, till exempel space, tab, FF, CR, NL, FF, etc.
  • [: övre:]: Alla versaler
  • [: nedre:]: Alla små bokstäver
  • [: cntrl:]: Alla kontrolltecken (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL etc.)

Ytterligare teckenuppsättningar

  • [A-Z]: Alla stora bokstäver
  • [a-z]: Alla små bokstäver
  • [0-9]: Alla siffror

Slutgiltiga tankar

Det finns många sätt att alla dessa funktioner i “tr” kan gynna användarna. Jag rekommenderar alltid att kolla in alla tillgängliga alternativ och djupgående guider om alla Linux-verktyg från deras man, info och hjälp sidor eftersom de kan erbjuda mer värdefull kunskap.

tr --hjälp

man tr

info tr

Njut av!

HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...
Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...