Erstatningsoppgaver kan gjøres i Linux på forskjellige måter. 'sed' kommando er en av måtene å gjøre erstatningsoppgave. 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 'Sed' -kommandoen vises i denne opplæringen.
Bytt ut alt etter kampen i en streng:
Hvordan delen av en streng kan erstattes basert på et matchende mønster og $ partition_column er vist i denne delen av denne opplæringen. Men denne variabelen fungerer hvis mønsteret samsvarer med noe ord i begynnelsen eller midten av strengen. Den vil ikke erstatte teksten hvis mønsteret stemmer overens med det siste ordet i strengen.
Eksempel-1: Erstatt alle 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 karakteren, 'a'.
$ Echo "Linuxhint er et nettsted" | sed "s/a $ partition_column.*/et populært bloggside/"
Følgende utgang vises etter å ha kjørt kommandoen. Her er 'et nettsted' blitt erstattet av 'et populært bloggsted'.
Følgende mønster vil søke i ordet 'Web'I strengen og erstatt den gjenværende delen med'Web'Ved teksten,'Et populært bloggside'Hvis kampen eksisterer og'Web'er ikke den delen av det siste ordet i strengen.
$ Echo "Linuxhint er et nettsted" | sed "s/web.* $ Partition_column.*/et populært bloggside/"
Følgende utgang vises etter å ha kjørt kommandoen. Her er 'nettsted' det siste ordet i strengen, og det er ikke gjort noen erstatning av denne grunn.
Eksempel-2: Erstatt alle etter kamp ved bruk av 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 til globalt søk.
$ ekko "Jeg liker bash -programmering" | sed "s/bash.*/python manus/g "
Følgende utgang vises etter å ha kjørt kommandoen. Her eksisterer 'bash' midt i strengen, og erstatningen er gjort.
Bytt ut alt etter kampen i en fil:
Alt innholdet i en bestemt linje eller flere linjer eller gjenværende linjer i en fil etter kampen kan byttes ut ved hjelp av 'sed'Kommando. Lag en tekstfil som heter deltakelse.tekst med følgende innhold for å teste eksemplene som er vist i denne delen.
deltakelse.tekst
1108885 er til stedeEksempel -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 nummeret finnes i en hvilken som helst linje i filen.
$ kattallendence.tekst
$ sed "s/1769994.*/1586844 er til stede/"oppmøte.tekst
Følgende utdata vises som kjører kommandoene. Her eksisterer det søkende nummeret i den tredje linjen 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 variabelen $ Partition_column for å erstatte flere linjer fra filen. Kommandoen vil søke '110' ved starten av hver linje i filen og erstatte alt med '110' med teksten 'Ugyldig oppføring' der den matchende teksten vil bli funnet.
$ CAT -oppmøte.tekst
$ sed "s/^110.* $ Partition_column.*/Ugyldig oppføring/"Oppmøte.tekst
Følgende utgang vises etter å ha kjørt kommandoene. '110' eksisterer i to linjer i filen, og disse er erstattet av den erstatningsteksten.
Eksempel-5: Erstatt alt innhold fra en linje med en fil ved å bruke 'C' etter kampen
Følgende 'sed'Kommando viser bruken av'c'For å erstatte alt etter kampen. Her, 'c'Indikerer endringen. Kommandoen vil søke i ordet 'tilstede'I filen og erstatt alt av linjen med teksten,'Denne linjen erstattes'Hvis ordet eksisterer i en hvilken som helst linje i filen.
$ CAT -oppmøte.tekst
$ sed '/nåtid/c Denne linjen erstattes' Oppmøte.tekst
Følgende utgang vises etter å ha kjørt kommandoene. Ordet 'nå.
Eksempel-6: Erstatt alt innhold fra en linje i en fil basert på start- og sluttmønster
Noen ganger kreves det å 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 på disse linjene i filen som starter med nummeret 110 og slutter med ordet 'fraværende' og erstatte alt med ordet 'erstattet' der mønstrene samsvarer med.
$ CAT -oppmøte.tekst
$ sed -e 's/^110.*fraværende $/erstattet/g 'oppmøte.tekst
Følgende utgang vises etter å ha kjørt kommandoene. Her starter den første og fjerde linjene med tallet 110, men ordet 'fraværende' eksisterer bare i fjerde linje. Så den fjerde linjen i filen er erstattet av den utskiftende teksten.
Konklusjon:
'Sed' -kommando er et veldig kraftig verktøy for Linux for å utføre forskjellige typer tekstbehandlingsrelaterte oppgaver. Erstatningsoppgaven basert på matchende mønster er diskutert i denne opplæringen ved å bruke forskjellige typer mønstre i 'Sed' -kommandoen. $ Partition_column, 'c', og '.*'brukes i denne opplæringen for å erstatte alt av en linje i filen der matchende mønster eksisterer. Bruken av noen karakterer med å definere mønstre har vist her, for eksempel '^' og '$'. Mange andre karakterer eksisterer for å definere mønsteret i vanlig uttrykk for søkeformål. Jeg håper denne opplæringen vil hjelpe leseren til å vite det grunnleggende om å erstatte alt fra en fil etter kampen.