sed

Cum se înlocuiesc mai multe linii folosind comanda „sed”

Cum se înlocuiesc mai multe linii folosind comanda „sed”
Uneori necesită înlocuirea mai multor linii ale unui fișier cu un anumit caracter sau text. Există diferite comenzi în Linux pentru a înlocui mai multe linii ale unui fișier. Comanda „sed” este una dintre ele pentru a face acest tip de sarcină. Forma completă a „sed” este Steam Editor și este utilizată în principal pentru a citi și a converti textul în moduri diferite, folosind o expresie regulată. Modul în care această comandă poate fi utilizată pentru a înlocui mai multe linii ale unui fișier în diferite moduri este explicat în acest tutorial.

Foaie de trucuri „sed” utilizate în mod obișnuit

Cele mai utilizate caractere utilizate în comanda „sed” sunt explicate în tabelul următor.

Caracter Scop
A Este folosit pentru adăugarea de conținut.
b Este folosit pentru ramificarea conținutului.
c Este folosit pentru schimbarea conținutului.
d Este folosit pentru ștergerea unei linii a unui fișier.
D Este folosit pentru a șterge prima linie a unui fișier.
g Obișnuia să copieze din textul deținător.
G Se folosește pentru a adăuga din textul de reținere.
h Se folosește pentru a copia în textul deținător.
H Se folosește pentru a atașa textul de reținere.
eu Este folosit pentru inserare.
Eu Este folosit pentru a imprima linia de înlocuire.
n Este folosit pentru a merge la linia următoare.
N Se folosește pentru a adăuga următoarea linie de intrare.
p Este folosit pentru a imprima.
P Este folosit pentru a imprima prima linie.
q Este folosit pentru a renunța.
Î Este folosit pentru a renunța imediat.
r Este folosit pentru a citi fișierul.
R Este folosit pentru a citi linia din fișier.
s Se folosește pentru a înlocui.
t Este folosit pentru a testa substituția.
T Este folosit pentru a testa dacă nu există nicio substituție.
w Este folosit pentru a scrie în fișier.
W Este folosit pentru a scrie o linie în fișier.
X Este folosit pentru a schimba tiparele și a ține apăsat.
y Se folosește pentru a traduce.
z Este folosit pentru a curăța linia.
'=' Este folosit pentru a imprima numărul liniei.

Înlocuiți mai multe linii utilizând comanda „sed” de la terminal:

Cum se poate utiliza comanda „sed” pentru a înlocui mai multe linii dintr-un fișier de la terminal este prezentat în această parte a acestui tutorial. Creați un fișier numit sed.txt cu următorul conținut testați comenzile acestei părți.

sed.txt

Forma completă de sed este „editor de flux”.

Este un utilitar Unix care este folosit pentru a citi și converti textul într-un format diferit.

A fost dezvoltat de Lee E. McMahon.

Este folosit pentru procesarea textului.

Suportă expresii regulate.

Exemplu-1: Înlocuiți două linii consecutive

Următoarea comandă „sed” va înlocui două linii consecutive cu o altă linie. Aici, opțiunea -z este utilizată pentru a înlocui liniile consecutive cu date nule înainte de a adăuga textul de înlocuire. Conform poruncii, 3rd și 4a liniile fișierului vor fi înlocuite cu textul, „Este un instrument foarte util”.

$ cat sed.txt
$ sed -z 's / A fost dezvoltat de Lee E. McMahon.\ nEste folosit pentru text
prelucrare./ Este un instrument foarte util./ 'sed.txt

Următoarea ieșire va apărea după executarea comenzilor.

Exemplu-2: Înlocuiți mai multe linii pe baza potrivirii și a steagului global

Următoarea comandă „sed” va înlocui toate liniile care încep cu cuvântul, 'Aceasta' prin cuvântul „Această linie este înlocuită '.

$ cat sed.txt
$ sed 's / ^ It.* / Această linie este înlocuită / g 'sed.txt

Următoarea ieșire va apărea după executarea comenzilor. Trei rânduri conțin cuvântul „Aceasta'în dosar. Deci, aceste linii au fost înlocuite cu textul de înlocuire.

Exemplul-3: Înlocuiți mai multe linii pe baza comenzii de potrivire și a liniei următoare

Următoarea comandă „sed” va înlocui cuvântul „este„după cuvânt”a fost'cu comanda următoare-linie,' n '.

$ cat sed.txt
$ sed 'n; / is / s / is / was / sed.txt

Următoarea ieșire va apărea după executarea comenzilor. Aici, 'este' există în 2nd și 4a liniile fișierului, iar aceste linii sunt modificate de cuvânt 'a fost'.

Înlocuiți mai multe linii prin crearea fișierului script „sed”:

În exemplele anterioare, comenzile „sed” au fost executate de la terminal. Dar este un limbaj de script și, dacă scriptul conține mai multe instrucțiuni, atunci este mai bine să creați un fișier sed cu scriptul. Creați un fișier text numit elevi.txt cu următorul conținut în care va fi aplicat scriptul „sed”.

elevi.txt

ID: 111045
Nume: Robert
Departament: CSE
Lot: 35
ID: 111876
Nume: Iosif
Departament: BBA
Lot: 27
ID: 111346
Nume: William
Departament: CSE
Lot: 45
ID: 111654
Nume: Charles
Departament: EEE
Lot: 41
ID: 111346
Nume: John
Departament: CSE
Lot: 25
ID: 111746
Nume: Thomas
Departament: CSE
Lot: 15

Exemplul-4: Înlocuiți mai multe linii ale unui fișier folosind fișierul script „sed”

Creați un fișier sed numit la a inlocui.sed cu următorul conținut pentru a înlocui liniile multiple pe baza modelului de căutare. Aici, cuvântul „CSE'va fi căutat în fișierul text și, dacă există potrivirea, va căuta din nou numărul 35 și 15. Dacă a doua potrivire există în fișier, atunci va fi înlocuită cu numărul 45.

a inlocui.sed

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

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


p;

Rulați următoarea comandă pentru a verifica conținutul existent al fișierului. „CSE” a apărut de patru ori în fișierul text. 35 și 15 există în două locuri.

$ cat studenti.txt

Următoarea comandă va înlocui conținutul mai multor linii bazate pe scriptul sed.

$ sed -n -f înlocuiți.sed elevi.txt

Următoarea ieșire va apărea după executarea comenzii.

Concluzie

Diferite moduri de a înlocui mai multe linii sau conținutul mai multor linii folosind comanda „sed” au fost prezentate în acest tutorial. Modul în care scriptul „sed” poate fi executat dintr-un fișier sed este, de asemenea, prezentat în acest tutorial. Sper că acest tutorial va ajuta cititorul să înlocuiască mai multe linii ale oricărui fișier folosind comanda „sed”.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...