Vooredaktor (SED): põhitõed

Vooredaktor Sed Pohitoed



SED, tuntud ka kui vooredaktor, on väga kasulik tööriist. Seda kasutatakse konkreetse sõna või mustri otsimiseks ja seejärel sõna või mustriga midagi tegemiseks või teisisõnu selle teisendamiseks. Windowsis tuntakse SED-i ka kui otsimise ja asendamise funktsioone. SED on koos Ubuntuga, seega pole vaja midagi installida; lihtsalt hakka seda kasutama. Selles õpetuses räägime teile, kuidas kasutada SED-i või vooredaktorit.

'S' käsk

SED-i või vooredaktori kõigist käskudest on kõige olulisem käsk 's'. 'S' tähistab asendust. Süntaks on järgmine:







‘s / regexp / asendamine / lipud


Niisiis, kasutame näidete jaoks faili nimega 'file.txt'. Fail.txt näeb välja järgmiselt, kui kasutate seda:




Kasutame näidet, et näidata, kuidas käsk 's' töötab:



aga ‘s / esiteks / kuu / ma fail.txt > moon.txt


Kui selline väljend on antud, tähendab see:





    • s – see tähistab asendajat.
    • esimene – sõna, mida otsitakse failist nimega 'fail.txt'.
    • kuu – sõna 'esimene' asendatakse sõnaga 'kuu'.
    • i – see tähistab ignoreerimist. Esimesel hetkel jätame selle osa tähelepanuta.
    • file.txt – fail, kust SED otsib mustrit või sõna. Sel juhul on sõna 'esimene' järgmine:
    • otsiti failist file.txt

    • moon.txt – kui sõna 'esimene' asendatakse sõnaga 'moon', salvestatakse see faili 'moon.txt' alla.

Niisiis, mis siin toimub? SED asendab sõna 'esimene' sõnaga 'kuu' ainult esimesel juhul (see tähendab, et kui sõna 'esimene' esineb mitu korda, ei asenda see seda täielikult ega asenda seda mitu korda). Otsitavat faili nimetatakse failiks.txt ja kui teisendus või asendus on tehtud, salvestatakse see faili moon.txt alla.



See näeb välja selline:


Ärge unustage panna '/' sinna, kus see peab olema. Kui jätate märgi „/” vahele, ei aktsepteeri SED käsku.

Seni oleme asendamisega asendanud ainult sõna 'esimene' sõnaga 'kokku puutunud'. Oletame nüüd, et tahame asendada sõna 'rida' (mis esineb mitu korda – täpsemalt neli korda) kolmandas reas sõnaga 'ingel'.

Kuidas me konkreetselt seda kolmandat rida sihime? Kasutame järgmist käsku:

aga '3s / rida / ingel / ma fail.txt > ingel.txt


Niisiis, mis siin just juhtus? Noh, '3' määrab rea numbri. Seetõttu läheb see kolmandale reale. Seejärel asendage failis nimega 'file.txt' sõnaga 'angel' sõna 'line' ja salvestage teisendatud fail nimega 'angel.txt'.


Mis siis, kui tahame ridu “3” ja “4” asendada või teisendada?

aga ' 3 ,4s / rida / ingel / ma fail.txt > ingel2.txt



Pange tähele, et eelmises näites kasutasime ignoreerimiseks lippu 'i'. Nüüd kasutame globaalse jaoks lippu 'g'.

Kasutame näidet, et näidata, kuidas käsk 's' töötab:

aga ‘s / rida / päike / g’ fail.txt > päike.txt


Kui selline väljend on antud, tähendab see:

'G' tähistab globaalset. Pidage meeles, et esimeses näites, kui kasutame lippu 'i', on ainult üks asendus. Nüüd, kui lisasime globaalse tähe 'g', tähendab see asendamist kõikjal. Seega selle asemel, et öelda esimene rida, teine ​​rida, kolmas rida ja viimane rida, öeldakse esimene päike, teine ​​päike, kolmas päike ja viimane päike. See asendab sõnarea kogu failis (kõikjal) sõnaga 'päike'.


Mis siis, kui tahame valida ühe rea selles sisalduva sõna põhjal? Näeme, et faili 'file.txt' viimasel real on sõna 'viimane'. Oletame nüüd, et tahame 'See on viimane rida. See on viimane lause.' lause muutuma “See on viimane kummitus. See on viimane lause.'

Kirjutame järgmist:

aga ' / viimane / s / rida / kummitus / fail.txt > ghost.txt


'Viimane' siin käsib SED-il otsida rida, millel on sõna 'viimane', ja seejärel asendada sõna 'rida' sõnaga 'kummitus'.


Oletame nüüd, et me tahame teha vastupidist. Oletame, et tahame, et iga rea ​​ilma sõnata 'viimane' muudetaks sõna 'rida' sõnaks 'kummitus'. Kirjutame järgmise:

aga ' / viimane /! s / rida / kummitus / fail.txt > ghost2.txt


Nagu näete siin, on igal real peale viimase (mis sisaldab sõna 'viimane') sõna 'rida' asendatud sõnaga 'kummitus'.


Seda saame teha ka reanumbritega:

aga ' 3 , 4 ! s / rida / öö / ma fail.txt > öö.txt


Sel juhul jäetakse read 3 ja 4 välja, kuid igal teisel real on sõna 'rida' asendatud sõnaga 'öö'.

Mitu käsku

Mis siis, kui teil oleks mitu käsku? Kas teeksite seda pigem ükshaaval või kõik korraga ning säästate aega ja tööd?

Mis siis, kui tahame muuta sõna 'esimene' sõnaga 'päev', 'teine' sõnaga 'öö' ja 'ülejäänud' sõnaga 'kummitus'? Selleks kasutame semikoolonit. Ärge unustage panna lõppu semikoolon!

Pange tähele, et te ei pea tingimata panema lippu 'i' või 'ignoreerima', kuid kindlasti peate teisendusfraasi järele panema kaldkriipsu (/).

Nüüd kontrollime seda näitega:

aga ‘s / esiteks / päeval / ; s / teiseks / öö / ; s / kolmandaks / kummitus / ; s / viimane / kummitus / ;' fail.txt > kombinatsioon.txt


Järeldus

Vooredaktor või SED on viis sõna või mustri valimiseks ja selle teisendamiseks. See on tegelikult akna otsimise ja asendamise funktsioonide käsurea vaste. SED-käsk võib muutuda väga keeruliseks, kuid kui teate vähemalt põhitõdesid, olete valmis seda kasutama! SED on tegelikult väga võimas paljude funktsioonidega tööriist. Kuigi me ei saa neid kõiki ühes õpetuses käsitleda, käsitlesime SED-i põhitõdesid. Sisuliselt õppisime, kuidas konkreetset sõna teisendada, kasutades käsku 's', kus 's' tähistab asendust. Võime asendada sõnad teiste sõnadega, valida valikuliselt rea, kus asendus toimub, või isegi selle eitada. Mõlemal juhul on see SED-i kõige lihtsam osa.

Head kodeerimist!