sed

Hvordan erstatte alt etter mønster ved hjelp av 'sed' Command

Hvordan erstatte alt etter mønster ved hjelp av 'sed' Command

Utskiftningsoppgaver kan gjøres i Linux på forskjellige måter. 'sed' kommando er en av måtene å utføre erstatningsoppgaver på. Denne kommandoen kan brukes til å erstatte tekst i en streng eller en fil ved å bruke et annet mønster. Hvordan du kan erstatte alt etter det matchende mønsteret ved hjelp av kommandoen 'sed', vises i denne veiledningen.

Bytt ut alt etter kampen i en streng:

Hvordan delen av en streng kan byttes ut basert på et matchende mønster og $ PARTITION_COLUMN har blitt vist i denne delen av denne veiledningen. Men denne variabelen fungerer hvis mønsteret samsvarer med et ord i begynnelsen eller midten av strengen. Det erstatter ikke teksten hvis mønsteret samsvarer med det siste ordet i strengen.

Eksempel 1: Erstatt alt etter kampen med $ PARTITION_COLUMN

Følgende kommando vil søke i tegnet 'a', og den gjenværende delen etter 'a' vil bli erstattet av teksten "et populært bloggside". $ PARTITION_COLUMN.* brukes til å definere den gjenværende delen etter tegnet, 'a'.

$ echo "LinuxHint er et nettsted" | sed "s / a $ PARTITION_COLUMN.* / et populært bloggside / "

Følgende utdata vises etter at du har kjørt kommandoen. Her har 'et nettsted' blitt erstattet av 'et populært bloggside'.


Følgende mønster vil søke i ordet 'nett'I strengen og erstatt den gjenværende delen med'nett'Ved teksten,'et populært bloggside'hvis kampen eksisterer og'nett'Er ikke den delen av strengens siste ord.

$ echo "LinuxHint er et nettsted" | sed "s / web.* $ PARTITION_COLUMN.* / et populært bloggside / "

Følgende utdata vises etter at du har kjørt kommandoen. Her er 'nettsted' det siste ordet i strengen, og ingen erstatning er gjort av denne grunn.

Eksempel 2: Erstatt alt etter kamp ved å bruke mønster

Følgende kommando vil søke i ordet 'bash'globalt i strengen og erstatt alt med ordet hvis ordet finnes i strengen. 'g'Brukes her for globalt søk.

$ echo "Jeg liker bash programmering" | sed "s / bash.* / python-skript / g "

Følgende utdata vises etter at du har kjørt kommandoen. Her eksisterer 'bash' midt i strengen, og erstatningen er gjort.

Bytt ut alt etter kampen i en fil:

Alt innholdet på en bestemt linje eller flere linjer eller gjenværende linjer i en fil etter kampen kan erstattes ved hjelp av 'sedkommando. Lag en tekstfil med navnet deltakelse.tekst med følgende innhold for å teste eksemplene som vises i denne delen.

deltakelse.tekst

1108885 er til stede
1999979 er til stede
1769994 er fraværende
1105656 er fraværende
1455999 er fraværende

Eksempel -3: Erstatt alt innhold fra en linje i en fil etter kampen

Følgende 'sed' kommando vil søke på nummeret 1769994 i filen, og alt med nummeret vil bli erstattet av teksten, '1586844 er til stede' hvis tallet finnes i en hvilken som helst linje i filen.

$ katt allendence.tekst
$ sed "s / 1769994.* / 1586844 er til stede / "oppmøte.tekst

Følgende utdata vises med kommandoene. Her finnes søkenummeret i tredje linje i filen, og erstatningen er gjort.

Eksempel -4: Erstatt alt innhold fra flere linjer i en fil etter kampen

Følgende 'sed' kommando viser bruken av $ PARTITION_COLUMN variabelen for å erstatte flere linjer fra filen. Kommandoen vil søke i '110' ved begynnelsen av hver linje i filen og erstatte alt med '110' med teksten 'Ugyldig oppføring' der den samsvarende teksten blir funnet.

$ kattoppmøte.tekst
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Ugyldig oppføring / "oppmøte.tekst

Følgende utdata vises etter at du har kjørt kommandoene. '110' finnes i to linjer i filen, og disse er erstattet av den erstatte teksten.

Eksempel 5: Erstatt alt innhold fra en linje i en fil ved å bruke 'c' etter kampen

Følgende 'sed'kommando viser bruken av'cå erstatte alt etter kampen. Her, 'c'indikerer endringen. Kommandoen vil søke i ordet 'tilstede'i filen og erstatt alt på linjen med teksten,'Denne linjen erstattes'hvis ordet finnes i en hvilken som helst linje i filen.

$ kattoppmøte.tekst
$ sed '/ present / c Denne linjen er erstattet' oppmøte.tekst

Følgende utdata vises etter at du har kjørt kommandoene. Ordet 'nåværende' finnes i de to første linjene i filen, og disse to linjene er erstattet av den erstatte teksten.

Eksempel 6: Erstatt alt innhold fra en linje i en fil basert på start- og sluttmønster

Noen ganger er det nødvendig å erstatte tekst basert på start- og sluttmønsteret. Følgende 'sed' kommando viser måten å definere start- og sluttmønstre for å erstatte linjer fra en fil. Kommandoen vil søke i linjene i filen som begynner med tallet 110 og slutter med ordet 'fraværende' og erstatte alt med ordet 'erstattet' der mønstrene samsvarer.

$ kattoppmøte.tekst
$ sed -e 's / ^ 110.* fraværende $ / erstattet / g 'fremmøte.tekst

Følgende utdata vises etter at du har kjørt kommandoene. Her begynner første og fjerde linje med tallet 110, men ordet 'fraværende' eksisterer bare i fjerde linje. Så den fjerde linjen i filen er erstattet av den erstattende teksten.

Konklusjon:

'sed' kommando er et veldig kraftig verktøy for Linux for å utføre forskjellige typer tekstbehandlingsrelaterte oppgaver. Erstatningsoppgaven basert på det matchende mønsteret blir diskutert i denne opplæringen ved å bruke forskjellige typer mønstre i kommandoen 'sed'. $ PARTITION_COLUMN, 'c' og '.* 'brukes i denne opplæringen for å erstatte alt i en linje i filen der matchende mønster eksisterer. Bruken av noen tegn med definerende mønstre har vist seg her, for eksempel '^' og '$'. Mange andre tegn eksisterer for å definere mønsteret i vanlig uttrykk for søkeformål. Jeg håper denne opplæringen vil hjelpe leseren til å kjenne det grunnleggende om å erstatte alt fra en fil etter kampen.

5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...
Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...
Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...