sed

Kuidas asendada mitu rida käsu 'sed' abil

Kuidas asendada mitu rida käsu 'sed' abil
Mõnikord nõuab see mitme failirea asendamist konkreetse märgi või tekstiga. Linuxis on faili mitme rea asendamiseks erinevad käsud. 'sed' käsk on üks sellist tüüpi ülesannete täitmiseks. 'Sed' täielik vorm on Steam Editor ja seda kasutatakse peamiselt teksti lugemiseks ja teisendamiseks tavalisel avaldisel erineval viisil. Kuidas seda käsku saab kasutada faili mitme rea asendamiseks erineval viisil, selgitatakse selles õpetuses.

Tavaliselt kasutatav "sed" petukiri:

Käsus 'sed' kõige sagedamini kasutatavaid märke selgitatakse järgmises tabelis.

Iseloom Eesmärk
a Seda kasutatakse sisu lisamiseks.
b Seda kasutatakse sisu hargnemiseks.
c Seda kasutatakse sisu muutmiseks.
d Seda kasutatakse failirea kustutamiseks.
D Seda kasutatakse faili esimese rea kustutamiseks.
g Seda kopeeriti hoidmistekstist.
G Seda kasutatakse hoidmisteksti lisamiseks.
h Seda kasutatakse hoidva teksti kopeerimiseks.
H Seda kasutatakse hoidmisteksti lisamiseks.
i Seda kasutatakse sisestamiseks.
Mina Seda kasutatakse asendusjoone printimiseks.
n Seda kasutatakse järgmisele reale minemiseks.
N Seda kasutatakse järgmise sisendrea lisamiseks.
lk Seda kasutatakse printimiseks.
P Seda kasutatakse esimese rea printimiseks.
q Seda kasutatakse loobumiseks.
Q Seda kasutatakse koheselt loobumiseks.
r Seda kasutatakse faili lugemiseks.
R Seda kasutatakse failist rea lugemiseks.
s Seda kasutatakse asendamiseks.
t Seda kasutatakse asenduse testimiseks.
T Seda kasutatakse asendamatuse testimiseks.
w Seda kasutatakse faili kirjutamiseks.
W Seda kasutatakse faili rea kirjutamiseks.
x Seda kasutatakse mustrite vahetamiseks ja hoidmiseks.
y Seda kasutatakse tõlkimiseks.
z Seda kasutatakse joone puhastamiseks.
'=' Seda kasutatakse reanumbri printimiseks.

Asendage mitu rida, kasutades terminali käsku "sed":

Kuidas käsku „sed” saab terminalist failist mitme rea asendamiseks, kuvatakse selle õpetuse selles osas. Looge fail nimega sed.txt järgmise sisuga testige selle osa käske.

sed.txt

Sed'i täielik vorm on voo redaktor.

See on Unixi utiliit, mida kasutatakse teksti lugemiseks ja teisendamiseks teises vormingus.

Selle töötas välja Lee E. McMahon.

Seda kasutatakse tekstitöötluseks.

See toetab regulaaravaldisi.

Näide 1: asendage kaks järjestikust rida

Järgmine käsk 'sed' asendab kaks järjestikust rida teise reaga. Siin kasutatakse valikut -z järjestikuste ridade asendamiseks nullandmetega enne asendusteksti lisamist. Vastavalt käsklusele 3rd ja 4th faili read asendatakse tekstiga, "See on väga kasulik tööriist".

$ kass sed.txt
$ sed -z 's / Selle töötas välja Lee E. McMahon.\ nSeda kasutatakse teksti jaoks
töötlemine./ See on väga kasulik tööriist./ 'sed.txt

Pärast käskude käivitamist ilmub järgmine väljund.

Näide 2: asendage mitu rida vaste ja globaalse lipu põhjal

Järgmine käsk 'sed' asendab kõik sõnaga algavad read, "See" sõna järgi, "See rida asendatakse ".

$ kass sed.txt
$ sed 's / ^ It.* / See rida asendatakse / g 'sed.txt

Pärast käskude käivitamist ilmub järgmine väljund. Kolm rida sisaldavad sõna "See'failis. Niisiis, need read on asendatud asendustekstiga.

Näide 3: Asendage mitu rida vastavalt mängu ja järgmise rea käsule

Järgmine käsk 'sed' asendab sõna 'on"sõna järgi"oli'järgmise rea käsuga' n '.

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

Pärast käskude käivitamist ilmub järgmine väljund. Siin, 'on' eksisteerib 2nd ja 4th faili read ja neid ridu muudetakse sõnaga "oli".

Asendage mitu rida, luues skriptifaili „sed”:

Eelmistes näidetes on terminalist käsk "sed" täidetud. Kuid see on skriptikeel ja kui skript sisaldab mitut lauset, siis on parem luua skriptiga sed-fail. Looge nimega tekstifail õpilased.txt järgmise sisuga, milles rakendatakse skripti „sed”.

õpilased.txt

ID: 111045
Nimi: Robert
Osakond: CSE
Partii: 35
ID: 111876
Nimi: Joosep
Osakond: BBA
Partii: 27
ID: 111346
Nimi: William
Osakond: CSE
Partii: 45
ID: 111654
Nimi: Charles
Osakond: EEE
Partii: 41
ID: 111346
Nimi: John
Osakond: CSE
Partii: 25
ID: 111746
Nimi: Thomas
Osakond: CSE
Partii: 15

Näide 4: asendage faili mitu rida skriptifailiga „sed”

Looge sed-fail nimega asendama.sed järgmise sisuga, et asendada mitu rida otsingumustri põhjal. Siin on sõna "CSE'otsitakse tekstifailist ja kui vaste on olemas, otsib see uuesti numbreid 35 ja 15. Kui failis on teine ​​vaste, asendatakse see numbriga 45.

asendama.sed

/ Täppiskeskus /
p; n;
/ 35 /
s / 35/45 /;
p; d;

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


p;

Faili olemasoleva sisu kontrollimiseks käivitage järgmine käsk. CSE ilmus tekstifailis neli korda. 35 ja 15 eksisteerivad kahes kohas.

$ kassiõpilased.txt

Järgmine käsk asendab sed-skripti põhjal mitme rea sisu.

$ sed -n -f asenda.sed õpilased.txt

Pärast käsu käivitamist ilmub järgmine väljund.

Järeldus

Selles õpetuses on näidatud erinevaid viise, kuidas asendada mitu rida või mitme rea sisu käsuga 'sed'. Kuidas saab sed-skripti sed-failist käivitada, on näidatud ka selles õpetuses. Loodan, et see õpetus aitab lugejal asendada mis tahes faili mitu rida käsu „sed” abil.

SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...
Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...
0 A.D. Õpetus
Paljudest strateegiamängudest on 0 A.D. suudab silma paista põhjaliku tiitli ja väga sügava taktikalise mänguna, hoolimata sellest, et see on avatud l...