Urejevalnik tokov (SED): Osnove

Urejevalnik Tokov Sed Osnove



SED, znan tudi kot urejevalnik tokov, je zelo uporabno orodje. Uporablja se za iskanje določene besede ali vzorca in nato nekaj naredi z besedo ali vzorcem ali z drugimi besedami preoblikuje. V sistemu Windows je SED znan tudi kot funkciji »poišči« in »zamenjaj«. SED je priložen Ubuntuju, zato vam ni treba ničesar namestiti; samo začni uporabljati. V tej vadnici vam bomo povedali, kako uporabljati SED ali urejevalnik toka.

Ukaz 'S'.

Najpomembnejši od vseh ukazov v SED ali urejevalniku toka je ukaz »s«. Črka 's' pomeni nadomestek. Sintaksa je naslednja:







's / regexp / zamenjava / zastave


Torej, uporabimo datoteko z imenom 'file.txt' za primere. Tako je videti »file.txt«, če ga označite:




Uporabimo primer, da pokažemo, kako deluje ukaz 's':



ampak 's / prvi / luna / i’ file.txt > luna.txt


Ko je podan tak izraz, to pomeni:





    • s – pomeni nadomestek.
    • prvi – beseda za iskanje v datoteki z imenom »file.txt«.
    • luna – Beseda »prvi« se nadomesti z besedo »luna«.
    • i – pomeni prezri. Ta del bomo najprej prezrli.
    • file.txt – datoteka, v kateri bo SED iskal vzorec ali besedo. V tem primeru bo beseda 'prvi':
    • iskal v file.txt

    • moon.txt – Ko besedo »prvi« zamenjate z besedo »moon«, bo shranjena pod »moon.txt«.

Torej, kaj se tukaj dogaja? SED zamenja besedo 'prvi' za 'luna' samo v prvem primeru (to pomeni, da če se beseda 'prvi' pojavi večkrat, je ne bo zamenjal v celoti ali zamenjal večkrat). Datoteka, ki jo išče, se imenuje 'file.txt' in ko bo opravljena transformacija ali zamenjava, bo shranjena pod 'moon.txt'.



Takole izgleda:


Ne pozabite vstaviti znaka »/«, kjer mora biti. Če izpustite »/«, SED ne bo sprejel ukaza.

Do sedaj smo z zamenjavo zamenjali samo besedo 'prvi' z 'naletel'. Zdaj pa predpostavimo, da želimo zamenjati besedo 'črta' (ki se pojavi večkrat - štirikrat, če smo natančni) v tretji vrstici z besedo 'angel'.

Kako natančno ciljamo na to tretjo vrstico? Uporabljamo naslednji ukaz:

ampak '3s / linija / angel / i’ file.txt > angel.txt


Torej, kaj se je pravkar zgodilo tukaj? No, '3' določa številko vrstice. Zato gre v tretjo vrstico. Nato v datoteki z imenom »file.txt« nadomestite besedo »line« z »angel« in shranite preoblikovano datoteko kot »angel.txt«.


Kaj pa, če želimo zamenjati ali transformirati vrstici '3' in '4'?

ampak ' 3 ,4s / linija / angel / i’ file.txt > angel2.txt



Upoštevajte, da smo v prejšnjem primeru uporabili zastavico »i« za prezrtje. Zdaj uporabljamo zastavo 'g' za globalno.

Uporabimo primer, da pokažemo, kako deluje ukaz 's':

ampak 's / linija / sonce / g' file.txt > sun.txt


Ko je podan tak izraz, to pomeni:

Črka »g« pomeni globalno. Ne pozabite, da je v prvem primeru, ko uporabimo zastavico 'i', samo ena zamenjava. Zdaj, ko smo dodali »g« za globalno, to pomeni zamenjava povsod. Torej, namesto da bi rekli prva vrstica, druga vrstica, tretja vrstica in zadnja vrstica, piše prvo sonce, drugo sonce, tretje sonce in zadnje sonce. Besedno vrstico v celotni datoteki (povsod) nadomesti z besedo »sonce«.


Kaj pa, če želimo izbrati eno vrstico glede na besedo, ki jo vsebuje? No, lahko vidimo, da ima zadnja vrstica »file.txt« besedo »last«. Zdaj pa predpostavimo, da želimo »To je zadnja vrstica. To je zadnji stavek.” stavek postane »To je zadnji duh. To je zadnji stavek.”

Pišemo naslednje:

ampak ' / zadnji / s / linija / duh / ’ datoteka.txt > ghost.txt


»Last« tukaj sporoča SED-u, naj poišče vrstico z besedo »last« in nato v tej vrstici zamenja besedo »line« z »ghost«.


Zdaj pa predpostavimo, da želimo narediti nasprotno. Recimo, da želimo, da se v vsaki vrstici brez besede »last« beseda »line« spremeni v »ghost«. Zapišimo naslednje:

ampak ' / zadnji /! s / linija / duh / ’ datoteka.txt > ghost2.txt


Kot lahko vidite tukaj, ima vsaka vrstica razen zadnja (ki vsebuje besedo »last«) besedo »line« zamenjana z besedo »ghost«.


To lahko storimo tudi s številkami vrstic:

ampak ' 3 , 4 ! s / linija / noč / i’ file.txt > noč.txt


V tem primeru sta vrstici 3 in 4 izpuščeni, v vsaki drugi vrstici pa je beseda »vrstica« nadomeščena z besedo »noč«.

Več ukazov

Kaj pa, če bi imeli več ukazov? Bi raje naredili enega po enega ali vse naenkrat in si prihranili nekaj časa in dela?

Kaj pa, če želimo besedo »prvi« spremeniti v »dan«, »drugi« v »noč« in »ostali« v »duh«? Za to uporabljamo podpičje. Ne pozabite postaviti podpičja na koncu!

Upoštevajte, da vam ni nujno, da postavite zastavico »i« ali zastavico »ignore«, vendar morate nujno postaviti poševnico (/) za besedno zvezo transformacije.

Zdaj pa preverimo na primeru:

ampak 's / prvi / dan / ; s / drugo / noč / ; s / tretji / duh / ; s / zadnji / duh / ;’ datoteka.txt > kombinacija.txt


Zaključek

Urejevalnik toka ali SED je način izbire besede ali vzorca in njegovega preoblikovanja. Pravzaprav je ekvivalent ukazne vrstice funkcijama »poišči« in »zamenjaj« v programu Window. Ukaz SED lahko postane zelo zapleten, a če poznate vsaj osnove, ste ga pripravljeni sprejeti! SED je pravzaprav zelo zmogljivo orodje s številnimi funkcijami. Čeprav ne moremo zajeti vseh v eni vadnici, smo pokrili osnove SED. V bistvu smo se naučili, kako preoblikovati določeno besedo z ukazom »s«, kjer »s« pomeni nadomestek. Besede lahko nadomestimo z drugimi besedami, selektivno izberemo vrstico, v kateri bo prišlo do zamenjave, ali jo celo zanikamo. Kakor koli že, to je najlažji del o SED.

Veselo kodiranje!