Kuidas asendada mitu rida käsuga 'sed'

How Replace Multiple Lines Using Sed Command



Mõnikord nõuab see faili mitme rea asendamist konkreetse märgi või tekstiga. Linuxis on faili mitme rea asendamiseks erinevaid käske. 'sed' käsk on üks neist seda tüüpi ülesannete täitmiseks. Täielik vorm sed on Steam Editor ja seda kasutatakse peamiselt teksti lugemiseks ja teisendamiseks erineval viisil, kasutades regulaaravaldist. Selles juhendis selgitatakse, kuidas seda käsku saab kasutada faili mitme rea erinevatel viisidel asendamiseks.

Tavaliselt kasutatav 'sed' petuleht:

Järgmises tabelis on selgitatud käsu 'sed' kõige sagedamini kasutatavaid märke.







Iseloom Eesmärk
et Seda kasutatakse sisu lisamiseks.
b Seda kasutatakse sisu hargnemiseks.
c Seda kasutatakse sisu muutmiseks.
d Seda kasutatakse failirida kustutamiseks.
D Seda kasutatakse faili esimese rea kustutamiseks.
g Varem kopeeriti see hoiatustekstist.
G Seda kasutatakse hoidetekstist lisamiseks.
h Seda kasutatakse hoideteksti kopeerimiseks.
H Seda kasutatakse hoideteksti lisamiseks.
i Seda kasutatakse sisestamiseks.
Mina Seda kasutatakse asendusrea trükkimiseks.
n Seda kasutatakse järgmisele reale liikumiseks.
N Seda kasutatakse järgmise sisendrea lisamiseks.
lk Seda kasutatakse printimiseks.
P Seda kasutatakse esimese rea printimiseks.
mida Seda kasutatakse loobumiseks.
Q Seda kasutatakse kohe lõpetamiseks.
r Seda kasutatakse faili lugemiseks.
R Seda kasutatakse failist rea lugemiseks.
s Seda kasutatakse asendamiseks.
t Seda kasutatakse asendamise testimiseks.
T Seda kasutatakse asendamatuse testimiseks.
sisse Seda kasutatakse faili kirjutamiseks.
IN Seda kasutatakse failile rea kirjutamiseks.
x Seda kasutatakse mustrite vahetamiseks ja hoidmiseks.
ja Seda kasutatakse tõlkimiseks.
Koos Seda kasutatakse joone kustutamiseks.
'=' Seda kasutatakse rea numbri printimiseks.

Asendage mitu rida terminali käsuga 'sed':

Selle õpetuse selles osas on näidatud, kuidas käsku 'sed' saab terminalist failist mitme rea asendamiseks kasutada. Looge fail nimega sed.txt Järgmise sisuga testige selle osa käske.



sed.txt



Sedi 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 teksti töötlemiseks.

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 suvandit -z järjestikuste ridade asendamiseks nullandmetega enne asendusteksti lisamist. Käsu kohaselt on 3rdja 4thfaili read asendatakse tekstiga, 'See on väga kasulik tööriist' .

$kasssed.txt
$sed -Koos '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 kuvatakse järgmine väljund.

Näide-2: asendage mitu rida mängu ja globaalse lipu alusel

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

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

Pärast käskude käivitamist kuvatakse järgmine väljund. Kolm rida sisaldavad sõna ' See 'Toimikus. Seega on need read asendustekstiga asendatud.

Näide-3: asendage mitu rida vaste ja järgmise rea käsu alusel

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

$kasssed.txt
$sed „{n;/on/{s/on/oli/}}”sed.txt

Pärast käskude käivitamist kuvatakse järgmine väljund. Siin, 'on' eksisteerib 2ndja 4thfaili ridu ja neid ridu muudab sõna 'Oli' .

Asendage mitu rida, luues skripti faili 'sed':

Eelmistes näidetes on terminalist täidetud käsud sed. Kuid see on skriptikeel ja kui skript sisaldab mitut lauset, on parem skriptiga luua sed -fail. Looge tekstifail nimega õ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, kasutades skriptifaili 'sed'

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

asendama.kasutatud

/CSE/ {
p; n;
/35/ {
s/35/Neli, viis/;
p; d;
}
/viisteist/ {
s/viisteist/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.

$kassõpilased.txt

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

$sed -n -fasendada.kasutatud õpilased.txt

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

Järeldus

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