Kaip pakeisti kelias eilutes naudojant komandą „sed“

How Replace Multiple Lines Using Sed Command



Kartais reikia pakeisti kelias failo eilutes bet kokiu konkrečiu simboliu ar tekstu. „Linux“ egzistuoja skirtingos komandos, pakeičiančios kelias failo eilutes. „sed“ komanda yra viena iš jų atlikti tokio tipo užduotis. Visa „sed“ forma yra „Steam Editor“ ir daugiausia naudojama tekstui skaityti ir konvertuoti įvairiais būdais, naudojant įprastą išraišką. Šiame vadove paaiškinta, kaip šia komanda galima pakeisti kelias failo eilutes įvairiais būdais.

Dažniausiai naudojamas „sed“ apgaulės lapas:

Dažniausiai naudojami simboliai, naudojami komandoje „sed“, paaiškinti šioje lentelėje.







Charakteris Paskirtis
į Jis naudojamas turiniui pridėti.
b Jis naudojamas šakotam turiniui.
c Jis naudojamas keičiant turinį.
d Jis naudojamas failo eilutei ištrinti.
D Jis naudojamas ištrinti pirmąją failo eilutę.
g Jis buvo kopijuojamas iš laikymo teksto.
G Jis naudojamas pridėti prie laikymo teksto.
h Jis naudojamas tekstui kopijuoti.
H Jis naudojamas pridėti prie laikomo teksto.
i Jis naudojamas įterpimui.
Jis naudojamas atspausdinti pakaitinę eilutę.
n Jis naudojamas pereiti prie kitos eilutės.
N Jis naudojamas kitai įvesties eilutei pridėti.
p Jis naudojamas spausdinti.
P Jis naudojamas pirmajai eilutei spausdinti.
Jis naudojamas mesti.
Q Jis naudojamas nedelsiant mesti.
r Jis naudojamas failui skaityti.
R Jis naudojamas failo eilutei skaityti.
s Jis naudojamas pakeisti.
t Jis naudojamas pakeisti.
T Jis naudojamas patikrinti, ar nėra pakeitimo.
į Jis naudojamas rašyti į failą.
IN Jis naudojamas įrašyti eilutę į failą.
x Jis naudojamas keičiant modelius ir laikant.
ir Jis naudojamas vertimui.
Su Jis naudojamas linijai išvalyti.
'=' Jis naudojamas eilutės numeriui spausdinti.

Pakeiskite kelias eilutes naudodami terminalo komandą „sed“:

Šioje instrukcijos dalyje parodyta, kaip komanda „sed“ gali pakeisti kelias eilutes iš failo iš terminalo. Sukurkite failą pavadinimu sed.txt su šiuo turiniu išbandykite šios dalies komandas.



sed.txt



Visa sed forma yra srauto redaktorius.





Tai „Unix“ programa, naudojama tekstui skaityti ir konvertuoti kitu formatu.

Jį sukūrė Lee E. McMahon.



Jis naudojamas teksto apdorojimui.

Jis palaiko įprastas išraiškas.

1 pavyzdys: pakeiskite dvi eilutes iš eilės

Ši komanda „sed“ pakeis dvi eilutes iš eilės kita eilute. Čia parinktis -z naudojama iš eilės einančioms eilutėms pakeisti nuliniais duomenimis prieš pridedant pakeitimo tekstą. Pagal komandą, 3rdir 4tūkstfailo eilutės bus pakeistos tekstu, „Tai labai naudinga priemonė“ .

$katėsed.txt
$sed -Su 's/Jį sukūrė Lee E. McMahon. nJis naudojamas tekstui
apdorojimas./Tai labai naudinga priemonė.
sed.txt

Paleidus komandas pasirodys ši išvestis.

2 pavyzdys: pakeiskite kelias eilutes pagal atitiktį ir visuotinę vėliavą

Ši komanda „sed“ pakeis visas eilutes, prasidedančias žodžiu, 'Tai' žodžiu, ' Ši eilutė pakeičiama ‘.

$katėsed.txt
$sed 's/^Tai.*/Ši eilutė pakeista/g'sed.txt

Paleidus komandas pasirodys ši išvestis. Trijose eilutėse yra žodis „ Tai 'Byloje. Taigi, šios eilutės buvo pakeistos pakeitimo tekstu.

3 pavyzdys: pakeiskite kelias eilutes pagal atitiktį ir kitos eilutės komandą

Ši komanda „sed“ pakeis žodį, yra „Žodžiu“, buvo „Su kitos eilutės komanda„ n “.

$katėsed.txt
$sed „{n;/yra/{s/yra/buvo/}}“sed.txt

Paleidus komandas pasirodys ši išvestis. Čia, 'Yra' egzistuoja 2antrair 4tūkstfailo eilutes, o šias eilutes modifikuoja žodis 'Buvo' .

Pakeiskite kelias eilutes sukurdami scenarijaus failą „sed“:

Ankstesniuose pavyzdžiuose „sed“ komandos buvo vykdomos iš terminalo. Bet tai yra scenarijų kalba, ir jei scenarijuje yra keli teiginiai, geriau sukurti sed failą su scenarijumi. Sukurkite teksto failą pavadinimu studentai.txt turinį, kuriame bus taikomas „sed“ scenarijus.

studentai.txt

ID: 111045
Vardas: Robertas
Skyrius: CSE
Partija: 35

ID: 111876
Vardas: Juozapas
Skyrius: BBA
Partija: 27

ID: 111346
Vardas: Viljamas
Skyrius: CSE
Partija: 45

ID: 111654
Vardas: Charlesas
Skyrius: EEE
Partija: 41

ID: 111346
Vardas: Jonas
Skyrius: CSE
Partija: 25

ID: 111746
Vardas: Tomas
Skyrius: CSE
Partija: 15

4 pavyzdys: pakeiskite kelias failo eilutes naudodami „sed“ scenarijaus failą

Sukurkite sed failą pavadinimu pakeisti.pradėjo su šiuo turiniu, kad pakeistumėte kelias eilutes pagal paieškos modelį. Čia žodis ' TPV „Bus ieškoma teksto faile, o jei atitiktis egzistuoja, ji vėl ieškos numerių 35 ir 15. Jei faile yra antroji atitiktis, ji bus pakeista skaičiumi 45.

pakeisti.pradėjo

/TPV/ {
p; n;
/35/ {
s/35/Keturi, penki/;
p; d;
}
/penkiolika/ {
s/penkiolika/55/;
p; d;
}
}
p;

Norėdami patikrinti esamą failo turinį, paleiskite šią komandą. „TPV“ teksto faile pasirodė keturis kartus. 35 ir 15 egzistuoja dviejose vietose.

$katėstudentai.txt

Ši komanda pakeis kelių eilučių turinį pagal sed scenarijų.

$sed -n -fpakeisti.šių studentų.txt

Paleidus komandą pasirodys ši išvestis.

Išvada

Šiame vadove buvo parodyti įvairūs būdai pakeisti kelias eilutes arba kelių eilučių turinį naudojant komandą „sed“. Šiame vadove taip pat parodyta, kaip scenarijų „sed“ galima vykdyti iš sed failo. Tikiuosi, kad ši pamoka padės skaitytojui pakeisti kelias bet kurio failo eilutes naudojant komandą „sed“.