Hvordan erstatte flere linjer ved hjelp av 'Sed' -kommandoen

Hvordan erstatte flere linjer ved hjelp av 'Sed' -kommandoen
Noen ganger krever det å erstatte flere linjer i en fil med et bestemt tegn eller tekst. Ulike kommandoer finnes i Linux for å erstatte flere linjer i en fil. 'sed' kommando er en av dem som gjør denne typen oppgave. Den fulle formen for 'sed' er Steam Editor, og den brukes hovedsakelig til å lese og konvertere teksten på forskjellige måter ved å bruke et vanlig uttrykk. Hvordan denne kommandoen kan brukes til å erstatte flere linjer i en fil på forskjellige måter blir forklart i denne opplæringen.

Ofte brukt 'sed' jukseark:

De mest brukte tegnene som brukes i 'Sed' -kommandoen blir forklart i følgende tabell.

Karakter Hensikt
en Det brukes til å legge til innhold.
b Det brukes til forgrening av innhold.
c Det brukes til å endre innhold.
d Den brukes til å slette en linje i en fil.
D Den brukes til å slette den første linjen i en fil.
g Den pleide å kopiere fra holdeteksten.
G Det brukes til å legge til fra holdeteksten.
h Den brukes til å kopiere i holdeteksten.
H Det brukes til å legge til holdeteksten.
Jeg Det brukes til innsetting.
Jeg Den brukes til å trykke erstatningslinjen.
n Det brukes til å gå til neste linje.
N Den brukes til å legge til neste inngangslinje.
p Det brukes til å skrive ut.
P Den brukes til å skrive ut den første linjen.
q Det brukes til å slutte.
Q Det brukes til å slutte med en gang.
r Den brukes til å lese filen.
R Den brukes til å lese linjen fra filen.
s Det brukes til å erstatte.
t Det brukes til å teste for erstatning.
T Det brukes til å teste uten erstatning.
w Det brukes til å skrive til filen.
W Det brukes til å skrive en linje til filen.
x Det brukes til å bytte mønstre og holde.
y Det brukes til å oversette.
z Det brukes til å fjerne linjen.
'=' Det brukes til å skrive ut linjenummeret.

Bytt ut flere linjer ved å bruke 'Sed' -kommandoen fra terminalen:

Hvordan 'Sed' -kommandoen kan brukes til å erstatte flere linjer fra en fil fra terminalen vises i denne delen av denne opplæringen. Lag en fil som heter sed.tekst Med følgende innholdstest er kommandoene til denne delen.

sed.tekst

Den fulle formen for SED er “Stream Editor”.

Det er et UNIX -verktøy som brukes til å lese og konvertere teksten i et annet format.

Det ble utviklet av Lee E. McMahon.

Det brukes til tekstbehandling.

Den støtter regelmessige uttrykk.

Eksempel 1: Bytt ut to linjer på rad

Følgende 'Sed' -kommando vil erstatte to påfølgende linjer med en annen linje. Her brukes -z -alternativet til å erstatte påfølgende linjer med nulldata før du legger til erstatningsteksten. I følge kommandoen, de 3Rd og 4th Linjer i filen blir erstattet av teksten, 'Det er et veldig nyttig verktøy'.

$ katt sed.tekst
$ sed -z 's/det ble utviklet av Lee E. McMahon.\ nit brukes til tekst
behandling./Det er et veldig nyttig verktøy./'Sed.tekst

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

Eksempel-2: Bytt ut flere linjer basert på match og globalt flagg

Følgende 'sed' -kommando vil erstatte alle linjer som starter med ordet, 'Den' etter ordet, 'Denne linjen erstattes '.

$ katt sed.tekst
$ sed 's/^it.*/Denne linjen er erstattet/g 'sed.tekst

Følgende utgang vises etter å ha kjørt kommandoene. Tre linjer inneholder ordet 'Den'I filen. Så disse linjene er erstattet av erstatningsteksten.

Eksempel-3: Bytt ut flere linjer basert på kampen og neste linje kommandoen

Følgende 'sed' kommando vil erstatte ordet, 'er'Etter ordet,'var'Med neste linje kommando,' n '.

$ katt sed.tekst
$ sed 'n;/is/s/is/was/' sed.tekst

Følgende utgang vises etter å ha kjørt kommandoene. Her, 'er' eksisterer i 2nd og 4th Linjer i filen, og disse linjene er endret etter ordet 'var'.

Bytt ut flere linjer ved å lage 'Sed' skriptfil:

I de foregående eksemplene er 'sed' kommandoer blitt utført fra terminalen. Men det er et skriptspråk, og hvis skriptet inneholder flere utsagn, er det bedre å lage en SED -fil med skriptet. Lag en tekstfil som heter studenter.tekst med følgende innhold der 'Sed' -skriptet vil bli brukt.

studenter.tekst

ID: 111045
Navn: Robert
Avdeling: CSE
Batch: 35
ID: 111876
Navn: Joseph
Avdeling: BBA
Batch: 27
ID: 111346
Navn: William
Avdeling: CSE
Batch: 45
ID: 111654
Navn: Charles
Avdeling: EEE
Batch: 41
ID: 111346
Navn: John
Avdeling: CSE
Batch: 25
ID: 111746
Navn: Thomas
Avdeling: CSE
Batch: 15

Eksempel-4: Bytt ut flere linjer i en fil med 'Sed' skriptfil

Lag en SED -fil som er navngitt til erstatte.sed med følgende innhold for å erstatte flere linjer basert på søkemønsteret. Her, ordet 'CSE'Blir søkt i tekstfilen, og hvis kampen eksisterer, vil den igjen søke på nummer 35 og 15. Hvis den andre kampen eksisterer i filen, blir den erstattet av nummer 45.

erstatte.sed

/ Cse/
p; n;
/ 35/
S/35/45/;
p; d;

/ 15/
S/15/55/;
p; d;


p;

Kjør følgende kommando for å sjekke det eksisterende innholdet i filen. 'CSE' dukket opp fire ganger i tekstfilen. 35 og 15 eksisterer to steder.

$ CAT -studenter.tekst

Følgende kommando vil erstatte innholdet i flere linjer basert på SED -skriptet.

$ sed -n -f erstatte.SED -studenter.tekst

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

Konklusjon

Ulike måter å erstatte flere linjer eller innholdet i flere linjer ved hjelp av 'Sed' -kommandoen har blitt vist i denne opplæringen. Hvordan 'Sed' -skriptet kan utføres fra en SED -fil, vises også i denne opplæringen. Jeg håper denne opplæringen vil hjelpe leseren til å erstatte flere linjer i en hvilken som helst fil ved å bruke 'Sed' -kommandoen.