Stream Editor (SED): Perustiedot

Stream Editor Sed Perustiedot



SED, joka tunnetaan myös stream-editorina, on erittäin hyödyllinen työkalu. Sitä käytetään tietyn sanan tai kuvion etsimiseen ja sen jälkeen tekemään sanalle tai kuviolle jotain tai toisin sanoen muuttamaan sitä. Windowsissa SED tunnetaan myös 'etsi'- ja 'korvaa'-toiminnoina. SED tulee Ubuntun mukana, joten sinun ei tarvitse asentaa mitään; ala vain käyttää sitä. Tässä opetusohjelmassa opastamme sinua käyttämään SED:tä tai stream-editoria.

'S'-komento

Kaikista SED:n tai stream-editorin komennoista tärkein on 's'-komento. 's' tarkoittaa korvaavaa. Syntaksi on seuraava:







's / regexp / korvaus / liput


Joten, käytetään tiedostoa nimeltä 'file.txt' esimerkeissä. Tältä 'tiedosto.txt' näyttää, jos otat sen huomioon:




Käytämme esimerkkiä osoittamaan, kuinka 's'-komento toimii:



mutta 's / ensimmäinen / kuu / i' file.txt > kuu.txt


Kun tällainen ilmaus annetaan, se tarkoittaa:





    • s – Se tarkoittaa substituutiota.
    • ensin – sana, jota etsitään tiedostosta nimeltä 'file.txt'.
    • kuu - Sana 'ensimmäinen' korvataan sanalla 'kuu'.
    • i – Se tarkoittaa huomiotta jättämistä. Jätämme tämän osan huomiotta ensimmäisellä kerralla.
    • file.txt – Tiedosto, josta SED etsii kuviota tai sanaa. Tässä tapauksessa sana 'ensimmäinen' on:
    • haettu tiedostosta file.txt

    • moon.txt – Kun sana 'first' korvataan sanalla 'moon', se tallennetaan kohtaan 'moon.txt'.

Joten mitä täällä tapahtuu? SED korvaa sanan 'ensimmäinen' sanalle 'kuu' vain ensimmäisessä tapauksessa (se tarkoittaa, että jos sana 'ensimmäinen' esiintyy useita kertoja, se ei korvaa sitä kokonaan tai korvaa sitä useita kertoja). Sen etsimä tiedosto on nimeltään 'file.txt', ja kun muunnos tai korvaus on tehty, se tallennetaan 'moon.txt' -kansioon.



Tältä se näyttää:


Muista laittaa '/' sinne, missä sen on oltava. Jos jätät pois '/', SED ei hyväksy komentoa.

Toistaiseksi olemme korvanneet vain sanan 'ensimmäinen' sanalla 'tapasin' korvauksella. Oletetaan nyt, että haluamme korvata sanan 'linja' (joka esiintyy monta kertaa - neljä kertaa tarkemmin) kolmannella rivillä sanalla 'enkeli'.

Miten kohdistamme nimenomaan tuon kolmannen rivin? Käytämme seuraavaa komentoa:

mutta '3s / linja / enkeli / i' file.txt > enkeli.txt


Joten mitä tässä juuri tapahtui? No, '3' määrittää rivin numeron. Siksi se siirtyy kolmannelle riville. Korvaa sitten sana 'rivi' sanalla 'angel' tiedostossa nimeltä 'file.txt' ja tallenna muunnettu tiedosto nimellä 'angel.txt'.


Entä jos haluamme korvata tai muuttaa rivit '3' ja '4'?

mutta ' 3 ,4s / linja / enkeli / I' file.txt > enkeli2.txt



Huomaa, että edellisessä esimerkissä käytimme 'i' -lippua ohitukseen. Nyt käytämme 'g'-lippua maailmanlaajuisesti.

Käytämme esimerkkiä osoittamaan, kuinka 's'-komento toimii:

mutta 's / linja / aurinko / g' tiedosto.txt > sun.txt


Kun tällainen ilmaus annetaan, se tarkoittaa:

'G' tarkoittaa globaalia. Muista, että ensimmäisessä esimerkissä, kun käytämme 'i' -lippua, on vain yksi korvaava. Nyt kun lisäsimme 'g' globaalille, se tarkoittaa korvaamista kaikkialla. Joten sen sijaan, että sanottaisiin ensimmäinen rivi, toinen rivi, kolmas rivi ja viimeinen rivi, se sanoo ensimmäinen aurinko, toinen aurinko, kolmas aurinko ja viimeinen aurinko. Se korvaa sanarivin koko tiedostossa (kaikkialla) sanalla 'aurinko'.


Entä jos haluamme valita yhden rivin sen sisältämän sanan perusteella? No, voimme nähdä, että 'file.txt'-tiedoston viimeisellä rivillä on sana 'last'. Oletetaan nyt, että haluamme 'Tämä on viimeinen rivi. Tämä on viimeinen lause.' lauseesta tulee 'Tämä on viimeinen haamu. Tämä on viimeinen lause.'

Kirjoitamme seuraavaa:

mutta ' / kestää / s / linja / aave / ' file.txt > ghost.txt


'Viimeinen' tässä käskee SED:tä etsimään riviä, jossa on sana 'last' ja korvaamaan sitten sanan 'line' sanalla 'ghost' kyseisellä rivillä.


Oletetaan nyt, että haluamme tehdä päinvastoin. Oletetaan, että haluamme, että jokaisella rivillä ilman sanaa 'viimeinen' sana 'rivi' muutetaan sanaksi 'haamu'. Kirjoitetaan seuraavaa:

mutta ' / kestää /! s / linja / aave / ' file.txt > ghost2.txt


Kuten näet tästä, jokaisella rivillä paitsi viimeisellä (joka sisältää sanan 'viimeinen') sana 'rivi' on korvattu sanalla 'haamu'.


Voimme tehdä tämän myös rivinumeroilla:

mutta ' 3 , 4 ! s / linja / / I' file.txt > yö.txt


Tässä tapauksessa rivit 3 ja 4 jätetään pois, mutta joka toisella rivillä sana 'linja' on korvattu sanalla 'yö'.

Useita komentoja

Entä jos sinulla olisi useita komentoja? Haluatko mieluummin tehdä sen yksi kerrallaan vai kaikki kerralla ja säästää aikaa ja työtä?

Entä jos haluamme muuttaa sanan 'ensimmäinen' sanaksi 'päivä', 'toinen' 'yöksi' ja 'loput' sanaksi 'aave'? Käytämme tähän puolipistettä. Älä unohda laittaa puolipistettä loppuun!

Huomaa, että sinun ei välttämättä tarvitse laittaa 'i'- tai 'ohita'-lippua, mutta sinun on ehdottomasti lisättävä kauttaviiva (/) muunnoslauseen jälkeen.

Tarkastellaanpa sitä nyt esimerkillä:

mutta 's / ensimmäinen / päivä / ; s / toinen / / ; s / kolmas / aave / ; s / kestää / aave / ;' tiedosto.txt > yhdistelmä.txt


Johtopäätös

Virtaeditori tai SED on tapa valita sana tai kuvio ja muuntaa se. Se on itse asiassa ikkunan 'etsi'- ja 'korvaa'-toimintojen komentorivivastine. SED-komento voi olla todella monimutkainen, mutta jos tiedät ainakin perusasiat, olet valmis ottamaan sen käyttöön! SED on itse asiassa erittäin tehokas työkalu, jossa on monia toimintoja. Vaikka emme voi käsitellä niitä kaikkia yhdessä opetusohjelmassa, käsitimme SED:n perusteet. Pohjimmiltaan opimme muuntamaan tietyn sanan käyttämällä 's'-komentoa, jossa 's' tarkoittaa korviketta. Voimme korvata sanoja muilla sanoilla, valita valikoivasti rivin, jossa korvaus tapahtuu, tai jopa kieltää sen. Joka tapauksessa tämä on SED:n helpoin osa.

Hyvää koodausta!