Hvordan sette inn en linje etter kampen ved å bruke 'Sed'?

Hvordan sette inn en linje etter kampen ved å bruke 'Sed'?

En av de nyttige og kraftige kommandoene til Linux er “SED” -kommandoen. Denne kommandoen brukes til å utføre forskjellige typer oppgaver i Linux, for eksempel å sette inn, oppdatere og slette en bestemt tekst eller linje basert på kampen. Du kan sette inn en tekst i en streng eller en fil på forskjellige måter ved å bruke “SED” -kommandoen.

Hvordan sette inn en linje etter å ha funnet en kamp i en streng eller en linje vises i denne opplæringen.

Sett inn en linje i strengen

En ny linje kan settes inn etter hvilken som helst strengverdi ved hjelp av “SED” -kommandoen hvis mønsteret som er definert i kommandoen stemmer overens med noen del av strengverdien.

Følgende eksempel viser hvordan en ny linje kan legges til etter en strengverdi hvis en bestemt streng eksisterer hvor som helst i strengverdien.

Eksempel 1: Sett inn en linje i en streng etter å ha funnet en kamp

Følgende kommando vil søke "Inng" i strengen, "Jeg liker programmering", og en tekstlinje, "Liker du programmering?”Vil bli satt inn etter strengen hvis søket streng eksisterer.

Her brukes "&" -tegnet til å sette inn linjen etter strengen.

$ ekko "Jeg liker programmering."| sed 's/inng/& liker du programmering?/'

Følgende utgang viser at “Inng” ikke eksisterer i strengen og ingen linje er satt inn etter strengen.


Følgende kommando vil søke “ing.”I strengen,“ Jeg liker programmering ”og den finnes i strengen.

$ ekko "Jeg liker programmering."| sed 's/ing./& Liker du programmering?/'

Følgende utgang viser at den nye linjen er lagt til etter strengen.

Sett inn en linje i en fil

Det er to måter å sette inn en linje etter at en kamp er funnet i en fil som er nevnt nedenfor. Når “SED” -kommandoen brukes uten “-i-alternativet”, vil innholdet i filen forbli uendret, og utdataene vil vise filinnholdet med den innsatte Newline. Du må bruke alternativet “-i” med “SED” -kommandoen for å sette inn den nye linjen permanent i filen hvis det samsvarende mønsteret eksisterer i filen.

EN. Bruker “A” i “SED” -kommandoen

"A" kan brukes i søkemønsteret til "SED" for å legge til en eller flere linjer i en fil etter linjen der søkemønsteret samsvarer med eller etter et bestemt linjenummer.

B. Bruker "jeg" i “SED” -kommandoen

“Jeg” kan brukes i søkemønsteret til “SED” -kommandoen for å sette inn en eller flere linjer i en fil før linjen der søkemønsteret samsvarer med.

Sett inn linje (er) i en fil basert på mønsteret:

Lag en tab-avgrenset tekstfil som heter Produkter.tekst Med følgende innhold for å vise bruken av ovennevnte flagg i “SED” -kommandoen.

Produkter.tekst

ID -navn
01 piskekrem
02 Kakaopulver
03 sukker
04 Egg
05 mel

Eksempel-2: Sett inn en linje etter et bestemt linjenummer ved å bruke “A”

Følgende kommandoer viser hvordan en ny linje kan legges til, etter et bestemt linjenummer av produktene.TXT -fil, basert på mønsteret som brukes i “SED” -kommandoen.

Her vil den første kommandoen vise det eksisterende innholdet i filen. Kommandoen “SED” vil legge til teksten, “B01 Bakepulver”, etter de to første linjene i filen. Den siste kommandoen brukes til å sjekke at filinnholdet blir endret eller ikke.

$ katteprodukter.tekst
$ sed '2 a b01 \ tbaking pulver' produkter.tekst
$ katteprodukter.tekst

Følgende utgang vises etter å ha kjørt kommandoen ovenfor.

Eksempel-3: Sett inn en linje etter den siste linjen ved å bruke “A”

Følgende kommando viser måten å legge til en ny linje etter den siste linjen i filen. Den første og siste kommandoen viser det eksisterende innholdet i filen før og etter å ha utført “SED” -kommandoen. “$” -Symbolet brukes i mønsteret av “SED” -kommandoen for å nevne den siste linjen i filen.

$ katteprodukter.tekst
$ sed '$ a b01 \ tbaking pulver' produkter.tekst
$ katteprodukter.tekst

Følgende utgang vises etter å ha kjørt kommandoen ovenfor.

Eksempel-4: Sett inn en linje hvor som helst i filen etter å ha samsvarer med et mønster med "A"

Følgende “SED” -kommando viser hvordan en ny linje kan legges til hvor som helst i filen basert på matchende mønster. Mønsteret som brukes i “SED” -kommandoen vil søke i hvilken som helst linje som starter med “S01”, og legg til den nye strengen etter den. Den fjerde linjen i filen starter med “S01”, og den nye linjen vil bli satt inn etter den linjen.

$ katteprodukter.tekst
$ sed '/^s01.*/A B01 \ TBaking Powder 'produkter.tekst
$ katteprodukter.tekst

Følgende utgang vises etter å ha kjørt kommandoen.


Følgende “SED” -kommando vil søke i en hvilken som helst linje som ender med "pulver" og sett inn den nye linjen etter den. Den tredje linjen i filen ender med "pulver". Så den nye linjen vil bli satt inn etter den linjen.

$ katteprodukter.tekst
$ sed '/pulver $/a b01 \ tbaking pulver' produkter.tekst
$ katteprodukter.tekst

Følgende utgang vises etter å ha kjørt kommandoene ovenfor.

Eksempel-5: Sett inn flere linjer etter samsvarende mønster med "A"

Følgende “SED” -kommando viser måten å legge til flere linjer i innholdet i en fil basert på matchende mønster.

Her vil to linjer bli lagt til etter den tredje linjen, i henhold til mønsteret.

$ katteprodukter.tekst
$ sed '/^[a-c]/a b01 \ tbaking pulver \ nb02 \ tbaking brus' produkter.tekst
$ katteprodukter.tekst

Følgende utgang vises etter å ha kjørt kommandoene ovenfor.

Eksempel-6: Sett inn en linje etter å ha samsvarer med et mønster med "jeg"

$ katteprodukter.tekst
$ sed '/krem/i b01 \ tbaking pulver' produkter.tekst
$ katteprodukter.tekst

Følgende utgang vises etter å ha kjørt kommandoene ovenfor.

Eksempel-7: Sett inn en linje permanent etter det samsvarende mønsteret ved å bruke alternativet “-i”

Følgende “SED” -kommando viser hvordan du endrer innholdet i filen permanent. Alternativet "i" brukes med "SED" -kommandoen for å sette inn en ny linje i filen basert på mønsteret.

$ katteprodukter.tekst
$ sed -i '/e $/a g01 \ tghee' produkter.tekst
$ katteprodukter.tekst

Følgende utgang vises etter å ha kjørt kommandoene ovenfor.

Konklusjon:

Måtene å sette inn to eller flere linjer i en fil ved å bruke “SED” -kommandoen med mønster er vist i denne opplæringen for å hjelpe leseren å bruke denne kommandoen for å sette inn linjer i det midlertidige eller permanent basert på mønsteret.