Hvordan bruke rev Command på Linux

Linuxs rev-kommando reverserer tekststrenger. Denne kommandoen kan fungere enten på gitt tekst eller en fil, og det virker villedende enkelt. Men som mange kommandolinjeverktøy, blir dens virkelige kraft tydelig når du kombinerer den med andre kommandoer.

Rev-kommandoen er en av de enkle Linux-verktøyene som ved første øyekast ser ut til å være noe rart. Den utfører en enkelt funksjon: den reverserer strenger. Og bortsett fra å kunne skrive ut en rask hjelpeside (-h) og vise deg versjonsnummeret (-V), godtar den ingen kommandolinjealternativer.

Så, rev reverserer strenger, og det er det? Ingen variasjoner eller alternativer? Vel, ja og nei. Ja, den har ingen permutasjoner, men nei, det er neppe alt. Denne opplæringen viser deg hvordan du kombinerer den for kraftige operasjoner.

Når du bruker rev som byggekloss i mer kompliserte kommandosekvenser, begynner det virkelig å vise seg. rev er en av en gruppe kommandoer (som tac og yes) som er tilretteleggere. Det er lettere å sette pris på deres nytte når du ser hvordan de gjør bruken av andre kommandoer mer effektiv.

Ved å bruke rev Command

Brukt på kommandolinjen uten andre parametere, tar rev en hvilken som helst inntasting, reverserer den og skriver den deretter ut i terminalvinduet. Det fortsetter å gjøre dette til du trykker Ctrl+C for å avslutte.

rev

Hvis du skriver inn litt tekst og trykker Enter, får rev skrive ut strengen omvendt – med mindre du gir den en palindromselvfølgelig.

  Hvordan sette opp Enpass på Linux

Sender tekst til rev

Du kan bruke ekko for å sende tekst til rev.

echo one two three | rev

Du kan også bruke rev for å reversere innholdet i en hel tekstfil, linje for linje. I dette eksemplet har vi en fil som inneholder en liste over filnavn. Filen heter «filelist.txt.»

rev filelist.txt

Hver linje leses fra filen, reverseres og skrives ut til terminalvinduet.

Kombinerer turtall med andre kommandoer

Her er et eksempel ved bruk av rørledning for inngang som kaller rev to ganger.

Denne kommandoen fjerner det siste tegnet fra tekststrengen. Dette kan være nyttig for å fjerne tegnsetting. Vi må bruke kutt-kommandoen til strippe karakteren.

echo 'Remove punctuation.' | rev | cut -c 2- | rev

La oss bryte det ned.

echo sender strengen inn i det første kallet til rev.
rev snur strengen og rører den inn i kutt.
Alternativet -c (tegn) forteller cut å returnere en sekvens av tegn fra strengen.
2-alternativet forteller cut å returnere rekkevidden av tegn fra tegn to til slutten av linjen. Hvis et annet tall ble oppgitt, for eksempel 2-5, ville området være fra tegn to til fem. Ingen andre tall betyr «opp til slutten av strengen.»
Den reverserte strengen – minus det første tegnet – sendes til rev som reverserer strengen, så den er tilbake til sin opprinnelige rekkefølge.

Fordi vi trimmet av det første tegnet i den omvendte strengen, trimmet vi av det siste tegnet i den originale strengen. Ja, du kan gjøre dette med sed eller awk, men dette er en enklere syntaks.

Å skille det siste ordet

Vi kan bruke et lignende triks for å returnere det siste ordet i linjen.

  Hvordan spille Outlast på Linux

Kommandoen er lik den siste: igjen, den bruker rev to ganger. Forskjellene ligger i måten kutt-kommandoen brukes til å velge deler av teksten.

echo 'Separate the last word' | rev | cut -d' ' -f1 | rev

Her er kommandooversikten:

echo sender strengen inn i det første kallet til rev.
rev snur strengen og rører den inn i kutt.
Alternativet -d» « (skilletegn) forteller cut å returnere en sekvens av tegn avgrenset med et mellomrom.
Alternativet -f1 forteller cut å returnere den første delen av strengen som ikke inneholder skilletegnet. Med andre ord første del av setningen opp til første mellomrom.
Det reverserte første ordet sendes til rev som reverserer strengen, så det er tilbake til sin opprinnelige rekkefølge.

Fordi vi hentet ut det første ordet i den omvendte strengen, trimmet vi av det siste ordet i den opprinnelige strengen. Det siste ordet i setningen var «ord», og det er skrevet ut for oss.

Trimming av innhold fra filer

La oss si at vi har en fil som inneholder en liste over filnavn, og filnavnene er i anførselstegn. Vi ønsker å fjerne anførselstegn fra filnavnene.

La oss se på filen:

less filelist.txt

Innholdet i filen vises for oss på mindre.

Vi kan fjerne tegnsettingen fra begge ender av hver linje med følgende kommando. Denne kommandoen bruker både turtall og kutt to ganger.

rev filelist.txt | cut -c 2- | rev | cut -c 2-

Filnavnene er oppført for oss uten anførselstegn.

Kommandoen brytes ned slik:

rev snur linjene i filen og rører dem inn i kutt.
Alternativet -c (tegn) forteller cut å returnere en sekvens av tegn fra hver linje.
2-alternativet forteller cut å returnere rekkevidden av tegn fra tegn to til slutten av hver linje.
De omvendte strengene, minus deres første tegn, sendes til rev.
rev snur strengene, så de er tilbake til sin opprinnelige rekkefølge. De blir satt i rør en gang til.
Alternativet -c (tegn) forteller cut å returnere en sekvens av tegn fra hver streng.
2-alternativet forteller cut å returnere rekkevidden av tegn fra tegn to til slutten av hver linje. Dette «hopper over» anførselstegn, som er et tegn på hver linje.

  Hvordan migrere Ext2 eller Ext3 filsystemer til Ext4 på Linux

Mye rør

Her er en kommando som returnerer en sortert liste over hver filtype i gjeldende katalog. Den bruker fem forskjellige Linux-kommandoer.

ls | rev | cut -d'.' -f1 | rev | sort | uniq

Prosessen er grei:

ls viser filene i gjeldende katalog. Disse føres inn i rev.
rev reverserer filnavnene og overfører dem til cut.
cut returnerer den første delen av hvert filnavn opp til et skilletegn. Den -d».» ber cut å bruke punktum «.» som skilletegn. Delen av de reverserte filnavnene frem til den første punktum er filtypene. Disse føres inn i rev.
rev reverserer filtypene til deres opprinnelige rekkefølge. De er rørt inn i sortering.
sort sorterer filtypene og overfører resultatene til uniq.
uniq returnerer en enkelt oppføring for hver type unik filtype. Legg merke til at hvis det ikke er noen filtype (som for makefilen, og katalogene Help og gc_help), er hele filnavnet oppført.

For å sette prikken over i’en, legg til -c (count) kommandolinjealternativet til uniq-kommandoen.

ls | rev | cut -d'.' -f1 | rev | sort | uniq -c

Vi får nå en sortert liste over de forskjellige filtypene i gjeldende katalog med en telling av hver.

Det er en ganske fin one-liner!

drawroF og ot drawkcaB gnioG

Noen ganger må du gå bakover for å gå fremover. Og du går vanligvis raskest fremover som en del av et lag.

Legg til rev til repertoaret av gå-til-kommandoer, og du vil snart bruke det til å forenkle ellers kompliserte kommandosekvenser.