Available in

(1) (1)/de (1)/fi (1)/hu (1)/ja (1)/pl (1b) (1posix)

TOC

sed(7)                                                                  sed(7)



NIMI

       sed - tekstivirtamuokkain (the stream editor)

YLEISKATSAUS

       sed [-n] [-e skripti ] [-f skriptitiedosto ] [ tiedosto ] ...

KUVAUS

       Sed  kopioi tiedoston (oletuksena vakiosyte) vakiotulosteeseen muokaten
       sit annettujen komentojen mukaisesti.

       Valitsin  -e  ottaa  yhden  muokkauskomennon  seuraavasta  parametrist.
       Useiden  komentojen  tapauksessa ne suoritetaan esiintymisjrjestyksess.
       Valitsinta -e ei tarvita, jos komentoja on vain yksi ja -f  -valitsinta
       ei kytet.

       Valitsin  -f  hakee  komennot  tiedostosta  "skriptitiedosto".  Useiden
       tiedostojen tapauksessa  komennot  suoritetaan  esiintymisjrjestyksess.
       Valitsimet -e ja -f voivat esiinty mys yhdess.

       Valitsin -n est vakiotulosteen.

       Skripti  koostuu  komennoista, jokainen omalla rivilln seuraavassa muo-
       dossa:

            [osoite [, osoite] ] funktio [parametrit]

       Yhden kierroksen aikana sed kopioi rivin sytteest puskuriin,  suorittaa
       skripteist ne komennot, joiden osoite sopii puskuriin ja lopuksi kopioi
       puskurin vakiotulosteeseen ja tyhjent puskurin.

       Valitsin -n est normaalin tulostuksen (niin, ett ainoastaan  p-  ja  w-
       komentojen  tulostukset psevt lpi). n- ja N-komennot lukevat itse rivej
       muualta ja d- ja D-komennot aiheuttavat skriptin muiden komentojen ohi-
       tuksen.  (D-komento  lisksi  est  tyhjentmst tmnhetkist tekstipuskuria,
       joka normaalisti tapahtuisi ennen seuraavan kierroksen aloittamista).

       On hydyllist tiet, ett sed kytt  mys  toista  puskuria  (sit  kutsutaan
       `pitopaikaksi',  hold  space  englanniksi),  joka  voidaan kopioida tai
       liitt tmnhetkiseen tekstipuskuriin, mys puskurien vaihtaminen onnistuu.

       Osoite  voi  olla  desimaalinumero  (jolloin se tarkoittaa rivinumeroa,
       jossa rivinumerointi alkaa yhdest ja juoksee kumulatiivisesti tiedoston
       lpi), tai, `$' joka osoittaa sytteen viimeiseen riviin, tai `/snnllinen
       lauseke/', jota haetaan, ed (1)-tyylisesti, mutta muokattuna nin:


       (1)  Merkkijono `\n' tarkoittaa rivinvaihtoa, joka lytyy puskurista  ja
            `\t' tarkoittaa sarkainta.

       (2)  Komentorivi ilman osoitetta valitsee jokaisen puskurin.

       (3)  Komentorivi, jolla on yksi osoite, valitsee kaikki puskurit, jotka
            sopivat osoitteeseen.

       (4)  Komentorivi, jolla on kaksi osoitetta, valitsee alueen osoitteiden
            vlist.   (Jos  jlkimminen  osoite on rivinumero ja on pienempi tai
            yhtsuuri kuin ensimminen, vain yksi rivi valitaan.) Kun jlkimminen
            osoite   on  lytynyt,  sed  aloittaa  uudelleen  etsimn  ensimmist
            osoitetta. Nit alueita voi olla useita.

       Knteisoperaattori '!' voi edelt komentoa, jolloin osoitteet,  joita  ei
       valittu osoitteiden perusteella, ovat komennon kohteena.

       Alla  olevassa  funktioiden listassa sallittujen osoitteiden mrn ylraja
       jokaiselle funktiolle on ilmoitettu sulkujen sisll.

       "teksti"-parametrit sisltvt yhden tai useamman rivillisen teksti.   Jos
       viimeisen  merkkin  rivill  on  kenoviiva,  jatketaan teksti-parametrin
       lukemista seuraavalla rivill, muulloin aletaan etsi seuraavaa komentoa.
       Laita komennon pern ainoastaan yksi kenoviiva.

       Tekstiss  kenoviivoja kytetn suojelemaan seuraavaa merkki (sarkaimet ja
       rivinvaihtomerkit jne.), jotta komentotulkki  ymmrt  oikein  skripteist
       lytyvt erikoismerkit.

       Parametrien,  joita merkitn "ltiedosto" (luku) tai "ktiedosto" (kirjoi-
       tus),  tytyy  olla  viimeisin  komentorivill.  Jokainen   kirjoitettava
       tiedosto  luodaan  ennen  muokkauksen  aloittamista.  Enintn 10 kirjoi-
       tustiedostoa voidaan tehd.

       a "teksti"   (1)
            Lis tekstin tulosteeseen ennen seuraavan rivin lukemista.

       b "nimi"  (2)
            Hypp komentoon `:', jolla on annettu nimi. Jos  nime  ei  annettu,
            hyptn skriptin loppuun.

       c "teksti"   (2)
            Vaihda.  Poistaa  tmnhetkisen  tekstipuskurin. Tulostaa tekstin ja
            aloittaa seuraavan kierroksen.

       d          (2)
            Poistaa tmnhetkisen tekstipuskurin. Hypp seuraavalle kierrokselle.

       D          (2)
            Poistaa  ensimmisen  rivin  tmnhetkisest  tekstipuskurista (kaikki
            merkit ensimmiseen rivinvaihtomerkkiin asti) ja aloittaa seuraavan
            kierroksen.

       g          (2)
            Korvaa tmnhetkisen tekstipuskurin sislln pitopaikan sisllll.

       G          (2)
            Lis pitopaikan sislln tmnhetkisen tekstipuskurin loppuun.

       h          (2)
            Kopioi tmnhetkisen tekstipuskurin pitopaikkaan.

       H          (2)
            Lis tmnhetkisen tekstipuskurin pitopaikan loppuun.

       i "teksti"   (1)
            Lis teksti vakiotulosteeseen.

       l          (2)
            Listaa  valitun  alueen  vakiotulosteeseen. Valitsinta "w" voidaan
            kytt samoin kuin s-komennossa, joka seuraa  alempana.  Tulostumat-
            tomat merkit tulostetaan nin:

               \b  --  askelpalautin (ASCII 08)
               \t  --  sarkain       (ASCII 09)
               \n  --  rivinvaihto   (ASCII 10)
               \r  --  return        (ASCII 13)
               \e  --  escape        (ASCII 27)
               \xx --  ASCII-merkki jonka heksanumeerinen arvo on xx.

       n          (2)
            Kopioi tmnhetkisen tekstipuskurin vakiotulosteeseen. Lukee seuraa-
            van rivin sytteest tilalle.

       N          (2)
            Listn seuraava rivi vakiosytteest tmnhetkisen tekstipuskurin pern,
            vliin  kuitenkin  listn  rivinvaihtomerkki. Tmnhetkinen rivinumero
            vaihtuu.

       p          (2)
            Tulosta. Kopioi tmnhetkisen tekstipuskurin vakiotulosteeseen.

       P          (2)
            Kopioi  ensimmisen  rivin  tmnhetkisest  tekstipuskurista  (kaikki
            merkit ensimmiseen rivinvaihtomerkkiin asti) vakiotulosteeseen.

       q          (1)
            Lopeta. Hyptn skriptin loppuun, eik aloiteta uutta kierrosta.

       r "ltiedosto"  (1)
            Lukee  ltiedoston sislln ja laittaa sen tulostukseen ennen seuraa-
            van syterivin lukemista.

       s/snnllinen lauseke/korvaaja/liput         (2)
            Korvaa snnllisen  lausekkeen  esiintymt  korvaajalla  tmnhetkisest
            tekstipuskurista. Kaikia merkkej, paitsi `/', voidaan kytt.  Katso
            ed(1), jos tarvitset tarkempaa kuvausta.  Liput ovat seuraavat:

            g -- Yleinen. Korvaa kaikki esiintymt,  jotka  eivt  ole  pllekkin
            pelkn yhden korvauksen sijaan.

            p -- Tulosta saatu teksti, kun korvaus on tehty.

            w  --  Lis tmnhetkinen tekstipuskuri tiedostoparametriin, kuten w-
            komennossa, kun korvaus  on  tehty.  Vakiotulostetta  kytetn,  jos
            tiedostoparametrej ei ole annettu.


       t "nimi"  (2)
            Hypp jos. Hyptn komentoon `:', jolla on annettu nimi, jos on tehty
            yksikin  korvaus  viimeisen  sytteen  lukemisen   tai   `t'-   tai
            `T'-komentojen  suorituksen  jlkeen.  Jos  nime  ei annettu, hyptn
            skriptin loppuun.

       T "nimi"  (2)
            Hypp virheen sattuessa. Hyptn  komentoon  `:',  jolla  on  annettu
            nimi,  jos  yksikin  korvaus  on  eponnistunut  viimeisen  sytteen
            lukemisen tai `t'- tai `T'-komentojen suorituksen jlkeen. Jos nime
            ei annettu, hyptn skriptin loppuun.

       w "ktiedosto"  (2)
            Kirjoita. Lis tmnhetkinen tekstipuskuri tiedostoon.

       W "ktiedosto"  (2)
            Kirjoita ensimminen rivi. Lis ensimminen rivi tmnhetkisest teksti-
            puskurista tiedostoon.

       x          (2)
            Vaihtaa keskenn tmnhetkisen tekstipuskurin ja pitopaikan sislln.

       y /teksti1/teksti2/      (2)
            Korvaa. Korvaa jokainen teksti1:sen esiintyminen teksti2:lla. Tek-
            stien tytyy olla yht pitki.

       ! "komento"              (2)
            Kaikki  paitsi.  Asettaa  funktion (tai ryhmittymn, jos funktio on
            `{') valitsemaksi alueeksi  ainoastaan  rivit,  joita  ei  valittu
            osoitteiden perusteella.

       : "nimi"  (0)
            Tm komento ainoastaan asettaa nimen paikan hyppyskomentojen kyttn.

       =          (1)
            Tulosta tmnhetkinen rivinumero vakiotulosteeseen omalle rivilleen.

       {          (2)
            Suorittaa aaltosulkujen (`{' ja `}') vliss olevat komennot ainoas-
            taan, kun tmnhetkinen rivi kuuluu valittuun alueeseen.

       Tyhjt komennot ohitetaan.


SIIRRETTVYYS

       Tm ohjelma on kehitetty BSD 4.1 UNIX sedist, tutkimalla sen toimintape-
       riaatetta  ja  on yhteensopiva sen kanssa (tekijiden tietmyksen ja tes-
       tauksien mukaan). Kaikki BSD 4.1 sedin dokumentoidut ominaisuudet  ovat
       tuettuja.

       Yksi dokumentoimaton ominaisuus (jos 'n' aloittaa ensimmisen kommentin,
       aiheuttaa se saman  vaikutuksen  kuin  valitsin  -n  komentorivill)  on
       jtetty toteuttamatta.

       Seuraavat bugit ja rajoitukset ovat korjattu:

       *    Piilotettua  rajoitusta  ktiedostonimien pituudessa ei ole (BSD:ss
            40).

       *    Rajoitusta nimen (ks. komento `:') pituudessa ei ole  (BSD  sediss
            8).

       *    Vaihtamiskomento toimii nyt pidemmillkin tekstin ptkill.

       Seuraavat lisykset vanhoihin komentoihin on tehty:

       *    Komennot  a ja i eivt vaadi tekstin alkuun kenoviiva-rivinvaihtoy-
            hdistelm.  Tosin yhteensopivuussyist se on suositeltavaa.

       *    Komennot r ja w eivt vaadi vli ennen tiedostonime.

       *    Valitsimien g, p ja P jrjestyksell ei ole vli s-komennossa.

       Seuraavat lisykset snnllisten lausekkeiden kielioppiin on tehty.

       *    \t tunnistetaan snnllisiss lausekkeissa (ja muuallakin)  sarkaimen
            pakottajana.

       *    Snnllisiss  lausekkeissa + tarkoittaa, ett edellinen pala esiintyy
            vhintn kerran.

       Nm ominaisuudet ovat uusia:

       *    l-komento (listaus, dokumentoimaton ja huono versio  tst  on  ole-
            massa jo BSD:ss).

       *    W-komento (kirjoita tekstipuskurin ensimminen rivi tiedostoon).

       *    T-komento (hypp viimeisen korvauksen eponnistuessa).

       *    Komentoriveill komentojen perss sallitaan nyt kommentit.

       Mys sedin virheilmoitukset on tehty tarkemmiksi ja opettavaisemmiksi.

       Tm toteutus on mys huomattavasti pienempi ja nopeampi kuin BSD 4.1 sed.
       Kytt ainoastaan vakio-I/O-kirjastoja ja exit(3)-funktiota.


COPYING

       This is a freeware component of the GNU and  MINIX  operating  systems.
       The user  is hereby  granted  permission  to use, modify, reproduce and
       distribute it subject to the following conditions:

       1. The authorship notice appearing  in  each source  file  may  not  be
       altered or deleted.

       2. The object form may not be distributed without source.


KATSO MYS

       ed(1), grep(1), awk(1), lex(1), regexp(5)


TEKIJ

       Tmn   mansivun   kirjoitti  Eric  S.  Raymond  <esr [AT] snark.com>,
       kuitenkin sed-paketti, jonka mukana tm tulee on GNU:lta.



Kyttjn sovellusohjelmat                                                 sed(7)

COMMENTS

1
See http://wiki.splitbrain.org/she … r_mark_bom on how to use SED to strip UTF-8 byte order marks.
2005-12-04 00:43:25
Andi
2
Real nice oneliners and longer SED scripts: http://sed.sourceforge.net/grabbag/
2005-12-07 16:16:30
Andi
Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.