sed

Kako zamijeniti više redaka pomoću naredbe 'sed'

Kako zamijeniti više redaka pomoću naredbe 'sed'
Ponekad je potrebno zamijeniti više redaka datoteke bilo kojim određenim znakom ili tekstom. U Linuxu postoje različite naredbe koje zamjenjuju više redaka datoteke. naredba 'sed' jedna je od njih koja obavlja ovu vrstu zadatka. Puni oblik 'sed' je Steam Editor i uglavnom se koristi za čitanje i pretvaranje teksta na različite načine pomoću regularnog izraza. Kako se ova naredba može koristiti za zamjenu više redaka datoteke na različite načine, objašnjeno je u ovom vodiču.

Često korišteni varalice 'sed':

Najčešće korišteni znakovi korišteni u naredbi 'sed' objašnjeni su u sljedećoj tablici.

Lik Svrha
a Koristi se za dodavanje sadržaja.
b Koristi se za grananje sadržaja.
c Koristi se za promjenu sadržaja.
d Koristi se za brisanje retka datoteke.
D Koristi se za brisanje prvog retka datoteke.
g Prije se kopirao iz teksta holdinga.
G Koristi se za dodavanje iz teksta fonda.
h Koristi se za kopiranje u tekst posjeda.
H Koristi se za dodavanje teksta držanja.
ja Koristi se za umetanje.
Ja Koristi se za ispis zamjenskog retka.
n Koristi se za prelazak na sljedeći redak.
N Koristi se za dodavanje sljedećeg retka za unos.
str Koristi se za ispis.
Str Koristi se za ispis prvog retka.
q Koristi se za prekid.
P Koristi se za trenutni prekid.
r Koristi se za čitanje datoteke.
R Koristi se za čitanje retka iz datoteke.
s Koristi se za zamjenu.
t Koristi se za ispitivanje zamjene.
T Koristi se za ispitivanje da nema zamjene.
w Koristi se za upisivanje u datoteku.
W Koristi se za upisivanje retka u datoteku.
x Koristi se za razmjenu uzoraka i zadržavanje.
g Koristi se za prevođenje.
z Koristi se za uklanjanje crte.
'=' Koristi se za ispis broja retka.

Zamijenite više redaka pomoću naredbe 'sed' s terminala:

Kako se naredba 'sed' može koristiti za zamjenu više redaka iz datoteke s terminala, prikazano je u ovom dijelu ovog vodiča. Stvorite datoteku s imenom sed.txt sljedećim sadržajem testirajte naredbe ovog dijela.

sed.txt

Puni oblik sed je "stream editor".

To je uslužni program Unix koji se koristi za čitanje i pretvaranje teksta u drugom formatu.

Razvio ga je Lee E. McMahon.

Koristi se za obradu teksta.

Podržava regularne izraze.

Primjer-1: Zamijenite dvije uzastopne linije

Sljedeća naredba 'sed' zamijenit će dvije uzastopne crte drugom linijom. Ovdje se opcija -z koristi za zamjenu uzastopnih redaka null podacima prije dodavanja zamjenskog teksta. Prema zapovijedi, 3rd i 4th retci datoteke bit će zamijenjeni tekstom, 'To je vrlo koristan alat'.

$ mačka sed.txt
$ sed -z 's / Razvio ga je Lee E. McMahon.\ nUpotrebljava se za tekst
obrada./ To je vrlo koristan alat./ 'sed.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi.

Primjer-2: Zamijenite više redaka na temelju podudaranja i globalne zastave

Sljedeća naredba 'sed' zamijenit će sve retke koji počinju riječju, 'To' riječju, 'Ovaj je redak zamijenjen '.

$ mačka sed.txt
$ sed 's / ^ To.* / Ovaj je redak zamijenjen / g 'sed.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Tri retka sadrže riječ 'To'u datoteci. Dakle, ovi su retci zamijenjeni zamjenskim tekstom.

Primjer-3: Zamijenite više redaka na temelju naredbe podudaranja i sljedećeg retka

Sljedeća naredba 'sed' zamijenit će riječ, 'je'po riječi,'bio'naredbom sljedećeg retka,' n '.

$ mačka sed.txt
$ sed 'n; / is / s / is / was /' sed.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Ovdje, 'je' postoji u 2nd i 4th retci datoteke, a ti su redovi izmijenjeni riječju "bilo je".

Zamijenite više redaka stvaranjem datoteke skripte 'sed':

U prethodnim su primjerima naredbe 'sed' izvršene s terminala. Ali to je skriptni jezik, a ako skripta sadrži više izjava, onda je bolje stvoriti sed datoteku sa skriptom. Stvorite tekstualnu datoteku s imenom studenti.txt sa sljedećim sadržajem u kojem će se primijeniti skripta 'sed'.

studenti.txt

ID: 111045
Ime: Robert
Odjel: CSE
Šarža: 35
ID: 111876
Ime: Joseph
Odjel: BBA
Šarža: 27
ID: 111346
Ime: William
Odjel: CSE
Šarža: 45
ID: 111654
Ime: Charles
Odjel: EEE
Šarža: 41
ID: 111346
Ime: John
Odjel: CSE
Šarža: 25
ID: 111746
Ime: Thomas
Odjel: CSE
Šarža: 15

Primjer 4: Zamijenite više redaka datoteke pomoću datoteke skripte 'sed'

Stvorite sed datoteku s imenom zamijeniti.sed sa sljedećim sadržajem za zamjenu više redaka na temelju uzorka pretraživanja. Evo, riječ 'CSE'pretražit će se u tekstualnoj datoteci, a ako podudaranje postoji, tada će ponovno pretražiti brojeve 35 i 15. Ako drugo podudaranje postoji u datoteci, tada će biti zamijenjeno brojem 45.

zamijeniti.sed

/ CSE /
p; n;
/ 35 /
s / 35/45 /;
p; d;

/ 15 /
s / 15/55 /;
p; d;


p;

Pokrenite sljedeću naredbu da biste provjerili postojeći sadržaj datoteke. 'CSE' se pojavio četiri puta u tekstualnoj datoteci. 35 i 15 postoje na dva mjesta.

$ mački studenti.txt

Sljedeća naredba zamijenit će sadržaj više redaka na temelju skripte sed.

$ sed -n -f zamijeniti.sed studenti.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe.

Zaključak

U ovom su priručniku prikazani različiti načini zamjene više redaka ili sadržaja više redaka pomoću naredbe 'sed'. Kako se skripta 'sed' može izvršiti iz sed datoteke, također je prikazano u ovom vodiču. Nadam se da će ovaj vodič pomoći čitatelju da zamijeni više redaka bilo koje datoteke pomoću naredbe 'sed'.

5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...
Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...