sed

Slik setter du inn en linje etter kampen ved å bruke 'sed'?

Slik setter du inn en linje etter kampen ved å bruke 'sed'?

En av de nyttige og kraftige kommandoene til Linux er kommandoen “sed”. 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å samsvar. Du kan sette inn en tekst i en streng eller en fil på forskjellige måter ved å bruke kommandoen “sed”.

Hvordan du setter inn en linje etter å ha funnet et treff i en streng eller en linje, vises i denne veiledningen.

Sett inn en linje i strengen

En ny linje kan settes inn etter en hvilken som helst strengverdi ved hjelp av "sed" -kommandoen hvis mønsteret som er definert i kommandoen samsvarer med noen del av strengverdien.

Følgende eksempel viser hvordan en ny linje kan legges til etter en strengverdi hvis en bestemt streng finnes 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 etter "inng" i strengen, "Jeg liker programmering", og en tekstlinje, "Liker du programmering?”Blir satt inn etter strengen hvis søkestrengen eksisterer.

Her brukes “&” -tegnet for å sette inn linjen etter strengen.

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

Følgende utgang viser at "inng" ikke eksisterer i strengen og ingen linje settes inn etter strengen.


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

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

Følgende utdata 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 utgangen vil vise filinnholdet med den nye linjen som er satt inn. Du må bruke alternativet “-i” med kommandoen “sed” for å sette inn den nye linjen permanent i filen hvis det samsvarende mønsteret finnes i filen.

EN. Bruke “a” i kommandoen “sed”

“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 eller etter et bestemt linjenummer.

B. Bruke “i” i “sed” -kommandoen

“I” 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.

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

Opprett en tabulatoravgrenset tekstfil med navnet Produkter.tekst med følgende innhold for å vise bruken av ovennevnte flagg i “sed” -kommandoen.

Produkter.tekst

ID-navn
01 Pisk fløte
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 på produktene.txt-fil, basert på mønsteret som brukes i kommandoen “sed”.

Her vil den første kommandoen vise det eksisterende innholdet i filen. Kommandoen “sed” vil legge til teksten “b01 Baking powder” etter de to første linjene i filen. Den siste kommandoen brukes til å kontrollere at filinnholdet er endret eller ikke.

$ katteprodukter.tekst
$ sed '2 a b01 \ tBaking powder' produkter.tekst
$ katteprodukter.tekst

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

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

Følgende kommando viser hvordan du legger 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 kjøring av "sed" -kommandoen. “$” Symbolet brukes i mønsteret til kommandoen “sed” for å nevne den siste linjen i filen.

$ katteprodukter.tekst
$ sed '$ a b01 \ tBaking powder' produkter.tekst
$ katteprodukter.tekst

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

Eksempel 4: Sett inn en linje hvor som helst i filen etter å ha matchet et mønster ved hjelp av "a"

Følgende “sed” -kommando viser hvordan en ny linje kan legges til hvor som helst i filen basert på det matchende mønsteret. Mønsteret som brukes i "sed" -kommandoen vil søke i en hvilken som helst linje som begynner med "s01", og legge til den nye strengen etter den. Den fjerde linjen i filen starter med “s01”, og den nye linjen blir satt inn etter den linjen.

$ katteprodukter.tekst
$ sed '/ ^ s01.* / a b01 \ tBaking Powder 'produkter.tekst
$ katteprodukter.tekst

Følgende utdata vises etter at du har kjørt kommandoen.


Den følgende "sed" -kommandoen vil søke i en linje som slutter med "Powder" og sette inn den nye linjen etter den. Den tredje linjen i filen avsluttes med "Pulver". Så den nye linjen blir satt inn etter den linjen.

$ katteprodukter.tekst
$ sed '/ Powder $ / a b01 \ tBaking Powder' produkter.tekst
$ katteprodukter.tekst

Følgende utdata vises når du har kjørt kommandoene ovenfor.

Eksempel 5: Sett inn flere linjer etter det matchende mønsteret ved hjelp av "a"

Følgende “sed” -kommando viser hvordan du kan legge til flere linjer i innholdet i en fil basert på det matchende mønsteret.

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

$ katteprodukter.tekst
$ sed '/ ^ [a-c] / a b01 \ tBaking Powder \ nb02 \ tBaking Soda' produkter.tekst
$ katteprodukter.tekst

Følgende utdata vises når du har kjørt kommandoene ovenfor.

Eksempel 6: Sett inn en linje etter å ha matchet et mønster ved hjelp av "I"

$ katteprodukter.tekst
$ sed '/ cream / i b01 \ tBaking Powder' produkter.tekst
$ katteprodukter.tekst

Følgende utdata vises når du har kjørt kommandoene ovenfor.

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

Følgende “sed” -kommando viser hvordan du endrer innholdet i filen permanent. Alternativet “i” brukes med kommandoen “sed” 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 utdata vises når du har 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 veiledningen for å hjelpe leseren med å bruke denne kommandoen for å sette inn linjer midlertidig eller permanent basert på mønsteret.

Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
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...