Hvordan bruke SED -kommandoen med regex

Hvordan bruke SED -kommandoen med regex

SED -kommandoen har langliste med støttede operasjoner som kan utføres for å lette prosessen med å redigere tekstfiler. Det gjør at brukerne kan bruke uttrykkene som vanligvis brukes på programmeringsspråk; Et av kjernen støttede uttrykk er vanlig uttrykk (regex).

Regex brukes til å administrere tekst i tekstfiler, ved hjelp av regex et mønster som består av streng, og disse mønstrene brukes deretter til å matche eller finne teksten. Regex er mye brukt på programmeringsspråk som Python, Perl, Java, og dens støtte er også tilgjengelig for kommandolinjeprogrammer som GREP og flere tekstredaktører også som SED.

Selv om den enkle søkingen og sortering kan utføres ved hjelp av SED -kommandoen, muliggjør bruk av Regex med SED avansert nivå samsvar i tekstfiler. Regex fungerer på instruksjonene til karakterer som er brukt; Disse tegnene veileder SED -kommandoen for å utføre de rettede oppgavene. I denne artikkelen vil vi demonstrere bruken av regex med SED -kommando og etterfulgt av eksemplene som vil vise anvendelsen av regex.

Hvordan bruke regex i sed

Denne delen er kjernedelen av forfatterskapet som inneholder den detaljerte forklaringen av vanlige uttrykk i SED -sammenheng: La oss starte med det

Matcher ordet

Hvis du vil finne ordet som nøyaktig samsvarer med tegnene, må du spesifisere de nøyaktige tegnene som samsvarer med ordet: for eksempel har vi en tekstfil som inneholder listen over bærbare produsenter kalt "bærbare datamaskiner.tekst”:

La oss få innholdet i filen ved å bruke kommandoen som er nevnt nedenfor:

$ katt bærbare datamaskiner.tekst

Bruk følgende kommando vil bidra til å få "Acer”Ord:

$ sed -n '/acer/p' bærbare datamaskiner.tekst

Matchende alle ord starter med spesifikk karakter

Denne Regex -støtten inneholder flere handlinger som er beskrevet i denne delen:

Hvis du vil søke og matche ordene som starter og avsluttes med et spesifikt tegn, må du bruke “*”Logg inn mellom karakterene for å gjøre det; Men det blir lagt merke til at "*”Symbol skriver ut ordene som starter med enkelt eller flere“Som”Men med singel“R”: For eksempel vil kommandoen skrevet nedenfor skrive ut alle ordene som starter med enkelt eller flere"EN”Og ender med singel”R”:

$ sed -n '/a*r/p' bærbare datamaskiner.tekst


For å matche ordet som ender med spesifikk karakter eller som bare inneholder spesifisert tegn: kommandoen skrevet nedenfor vil vise ordene med karakter "P”Eller det nøyaktige ordet”HP”:

$ sed -n '/h \?P/P 'bærbare datamaskiner.tekst

Matcher ordene med spesifikk karakter

Det blir lagt merke til at du kan få ordene som inneholder hvilken som helst karakter ved hjelp av SED -kommando: for eksempel vil kommandoen nevnt nedenfor finne ordene som inneholder en av disse karakterene “A”, “H” eller “D”:

$ sed -n '/[ahd]/p' bærbare datamaskiner.tekst

Matcher strengen

Du kan bruke SED -kommando med vanlige uttrykk for å skrive ut strengene; Du kan enten skrive ut alle strengene, eller du kan også målrette mot en spesifikk streng ved å bruke start- eller sluttkarakteren til den strengen:

Vi har brukt “fil.tekst'Å bruke det som et eksempel i dette avsnittet; Denne filen inneholder følgende innhold:

$ kattefil.tekst

For eksempel, hvis du vil skrive ut alle strengene; Følgende kommando vil hjelpe deg i denne forbindelse:

$ sed -n '/.\+/p 'fil.tekst

Hvis du vil få alle strengene som starter med karakter "en”Da må du bruke gulrotsymbol (^) for å indikere startkarakteren til strengen.

Kommandoen nevnt nedenfor til å skrive ut strengene som starter med “@”:

$ sed -n '^@' fil.tekst

Dessuten, hvis du bare vil få de strengene som ender med en spesifikk karakter, må du bruke "$”Med den karakteren. For eksempel vil kommandoen skrevet her skrive ut strengene som ender med "#”:

$ sed -n '/#$/p' fil.tekst

Matcher de blanke linjene

SED -kommandoen Regex -støtte lar brukeren skrive ut/slette de tomme linjene ved å bruke “/^$/”; Følgende kommando vil skrive ut de tomme linjene i “bærbare datamaskiner.tekst”Fil:

$ sed -n '/^$/p' bærbare datamaskiner.tekst

Eller du kan slette ved å erstatte “p”Med“d”I kommandoen ovenfor som vist nedenfor:

$ sed -n '/^$/d' bærbare datamaskiner.tekst

Matcher brev saken

SED -kommandoen lar brukere manipulere ordene med spesifikk bokstavveske:

For eksempel kan du skrive ut, slette, erstatte bokstavens sakord ved å bruke SED -kommando:

En tekstfil kalt "test.tekst”Brukes i dette eksemplet, innholdet i denne filen skrives ut ved å bruke følgende kommando:

$ kattest.tekst

Matcher små bokstaver

Følgende kommando vil skrive ut alle ordene som inneholder små bokstaver i dem:

$ sed -n '/[a -z]/p' test.tekst

Matcher store bokstaver

Eller du kan skrive ut ordene som inneholder store bokstaver ved å utstede følgende kommando i terminalen:

$ sed -n '/[a -z]/p' test.tekst

Konklusjon

Regelmessige uttrykk (regex) blir referert til som; Ethvert ord eller sekvens av tegn som brukes til å få de matchende ordene fra en hvilken som helst tekstfil. De gir omfattende støtte for flere programmeringsspråk samt Ubuntu -kommandoer eller programmer. Ved siden av denne Regex gir Ubuntu støtte for omfattende kommandoer som letter prosessen med å utføre kjedelige oppgaver. SED -kommandolinjeverktøyet til Ubuntu lar deg utføre flere kjedelige oppgaver veldig enkelt for å utføre flere operasjoner på tekstfiler. Vi har samlet denne guiden for å opplyse fordelene ved å bli med Regex med SED; Denne joint venture gir avansert nivå matching og søker i tekstfiler. Regelmessige uttrykk trenger hjelp fra tegn som brukes til matching for å utføre forskjellige oppgaver som å slette, utskrift, erstatte eller administrere tekst i tekstfiler.