sed

Sådan indsættes en linje efter kampen ved hjælp af 'sed'?

Sådan indsættes en linje efter kampen ved hjælp af 'sed'?

En af de nyttige og kraftfulde kommandoer i Linux er kommandoen “sed”. Denne kommando bruges til at udføre forskellige typer opgaver i Linux, såsom indsætte, opdatere og slette en bestemt tekst eller linje baseret på matchet. Du kan indsætte en tekst i en streng eller en fil på forskellige måder ved hjælp af kommandoen “sed”.

Sådan indsættes en linje efter at have fundet et match i en streng eller en linje vises i denne vejledning.

Indsæt en linje i strengen

En ny linje kan indsættes efter en hvilken som helst strengværdi ved hjælp af kommandoen “sed”, hvis det mønster, der er defineret i kommandoen, matcher en hvilken som helst del af strengværdien.

Følgende eksempel viser, hvordan en ny linje kan tilføjes efter en strengværdi, hvis en bestemt streng findes et vilkårligt sted i strengværdien.

Eksempel 1: Indsæt en linje i en streng efter at have fundet et match

Den følgende kommando søger efter "inng" i strengen, "Jeg kan godt lide programmering" og en tekstlinje "Kan du lide at programmere?”Indsættes efter strengen, hvis søgestrengen findes.

Her bruges “&” - tegnet til at indsætte linjen efter strengen.

$ echo "Jeg kan godt lide programmering."| sed 's / inng / & Kan du lide programmering?/ '

Følgende output viser, at "inng" ikke findes i strengen, og der indsættes ingen linje efter strengen.


Den følgende kommando søger efter “ing.”I strengen,“ Jeg kan godt lide programmering ”, og den findes i strengen.

$ echo "Jeg kan godt lide programmering."| sed 's / ing./ & Kan du lide at programmere?/ '

Følgende output viser, at den nye linje tilføjes efter strengen.

Indsæt en linje i en fil

Der er to måder at indsætte en linje efter, at et match er fundet i en fil, der er nævnt nedenfor. Når kommandoen “sed” bruges uden indstillingen “-i”, forbliver filens indhold uændret, og output viser filindholdet med den indsatte nye linje. Du skal bruge indstillingen “-i” med kommandoen “sed” til at indsætte den nye linje permanent i filen, hvis der findes et matchende mønster i filen.

EN. Brug af “a” i kommandoen “sed”

“A” kan bruges i søgemønsteret for “sed” til at tilføje en eller flere linjer i en fil efter den linje, hvor søgemønsteret matcher eller efter et bestemt linjenummer.

B. Brug af "i" i kommandoen "sed"

“I” kan bruges i søgemønsteret for kommandoen “sed” til at indsætte en eller flere linjer i en fil før den linje, hvor søgemønsteret matcher.

Indsæt linje (r) i en fil baseret på mønsteret:

Opret en tabulatorafgrænset tekstfil med navnet Produkter.txt med følgende indhold for at vise anvendelsen af ​​ovenstående flag i kommandoen “sed”.

Produkter.txt

ID-navn
01 Pisk fløde
02 Kakaopulver
03 Sukker
04 Æg
05 Mel

Eksempel 2: Indsæt en linje efter et bestemt linjenummer ved hjælp af "a"

Følgende kommandoer viser, hvordan en ny linje kan tilføjes efter et bestemt linjenummer på produkterne.txt-fil, baseret på det mønster, der bruges i kommandoen “sed”.

Her viser den første kommando det eksisterende indhold af filen. Kommandoen “sed” tilføjer teksten “b01 Bagepulver” efter de første to linjer i filen. Den sidste kommando bruges til at kontrollere, om filindholdet er ændret eller ej.

$ kat produkter.txt
$ sed '2 a b01 \ tBagepulver' produkter.txt
$ kat produkter.txt

Følgende output vises efter kørsel af ovenstående kommando.

Eksempel 3: Indsæt en linje efter den sidste linje ved hjælp af "a"

Følgende kommando viser hvordan man tilføjer en ny linje efter den sidste linje i filen. Den første og sidste kommando viser det eksisterende indhold af filen før og efter udførelse af kommandoen “sed”. “$” Symbolet bruges i mønsteret af kommandoen “sed” for at nævne den sidste linje i filen.

$ kat produkter.txt
$ sed '$ a b01 \ tBagepulver' produkter.txt
$ kat produkter.txt

Følgende output vises efter kørsel af ovenstående kommando.

Eksempel 4: Indsæt en linje hvor som helst i filen efter at have matchet et mønster ved hjælp af "a"

Den følgende “sed” -kommando viser, hvordan en ny linje kan tilføjes hvor som helst i filen baseret på det matchende mønster. Det mønster, der bruges i kommandoen “sed”, vil søge i en hvilken som helst linje, der starter med “s01” og tilføje den nye streng efter den. Den fjerde linje i filen starter med “s01”, og den nye linje indsættes efter denne linje.

$ kat produkter.txt
$ sed '/ ^ s01.* / a b01 \ tBagningspulverprodukter.txt
$ kat produkter.txt

Følgende output vises efter kørsel af kommandoen.


Den følgende "sed" -kommando søger på en linje, der slutter med "Pulver" og indsætter den nye linje efter den. Den tredje linje i filen slutter med "Pulver". Så den nye linje indsættes efter denne linje.

$ kat produkter.txt
$ sed '/ Powder $ / a b01 \ tBaking Powder' produkter.txt
$ kat produkter.txt

Følgende output vises efter kørsel af ovenstående kommandoer.

Eksempel 5: Indsæt flere linjer efter det matchende mønster ved hjælp af "a"

Den følgende "sed" -kommando viser hvordan man tilføjer flere linjer inde i indholdet af en fil baseret på det matchende mønster.

Her tilføjes to linjer efter den tredje linje i henhold til mønsteret.

$ kat produkter.txt
$ sed '/ ^ [a-c] / a b01 \ tBagningspulver \ nb02 \ tBagtsoda-produkter.txt
$ kat produkter.txt

Følgende output vises efter kørsel af ovenstående kommandoer.

Eksempel 6: Indsæt en linje efter matchning af et mønster ved hjælp af "I"

$ kat produkter.txt
$ sed '/ creme / i b01 \ tBagepulverprodukter.txt
$ kat produkter.txt

Følgende output vises efter kørsel af ovenstående kommandoer.

Eksempel 7: Indsæt en linje permanent efter det matchende mønster ved hjælp af "-i" -muligheden

Følgende “sed” -kommando viser, hvordan du ændrer indholdet af filen permanent. Indstillingen “i” bruges med kommandoen “sed” til at indsætte en ny linje i filen baseret på mønsteret.

$ kat produkter.txt
$ sed -i '/ e $ / a g01 \ tGhee' produkter.txt
$ kat produkter.txt

Følgende output vises efter kørsel af ovenstående kommandoer.

Konklusion:

Måderne til at indsætte to eller flere linjer i en fil ved hjælp af kommandoen “sed” med mønster er vist i denne vejledning for at hjælpe læseren med at anvende denne kommando til indsættelse af linjer midlertidigt eller permanent baseret på mønsteret.

Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...