Provided by: manpages-fi_0.2-2_all bug

NIMI

       sed - tekstivirtamuokkain (the stream editor)

YLEISKATSAUS

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

KUVAUS

       Sed kopioi tiedoston (oletuksena vakiosyöte) vakiotulosteeseen muokaten
       sitä annettujen komentojen mukaisesti.

       Valitsin -e  ottaa  yhden  muokkauskomennon  seuraavasta  parametristä.
       Useiden komentojen tapauksessa ne suoritetaan esiintymisjärjestyksessä.
       Valitsinta -e ei tarvita, jos komentoja on vain yksi ja -f  -valitsinta
       ei käytetä.

       Valitsin  -f  hakee  komennot  tiedostosta  "skriptitiedosto".  Useiden
       tiedostojen tapauksessa komennot suoritetaan  esiintymisjärjestyksessä.
       Valitsimet -e ja -f voivat esiintyä myös yhdessä.

       Valitsin -n estää vakiotulosteen.

       Skripti  koostuu  komennoista,  jokainen  omalla  rivillään seuraavassa
       muodossa:

            [osoite [, osoite] ] funktio [parametrit]

       Yhden  kierroksen  aikana  sed  kopioi  rivin   syötteestä   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  pääsevät  läpi). n- ja N-komennot lukevat itse
       rivejä  muualta  ja  d-  ja  D-komennot  aiheuttavat  skriptin   muiden
       komentojen    ohituksen.   (D-komento   lisäksi   estää   tyhjentämästä
       tämänhetkistä  tekstipuskuria,  joka   normaalisti   tapahtuisi   ennen
       seuraavan kierroksen aloittamista).

       On  hyödyllistä  tietää,  että  sed  käyttää myös toista puskuria (sitä
       kutsutaan  ‘pitopaikaksi’,  hold  space  englanniksi),   joka   voidaan
       kopioida  tai  liittää  tämänhetkiseen  tekstipuskuriin, myös puskurien
       vaihtaminen onnistuu.

       Osoite voi olla desimaalinumero  (jolloin  se  tarkoittaa  rivinumeroa,
       jossa   rivinumerointi   alkaa   yhdestä  ja  juoksee  kumulatiivisesti
       tiedoston läpi), tai, ‘$’ joka osoittaa syötteen viimeiseen riviin, tai
       ‘/säännöllinen   lauseke/’,  jota  haetaan,  ed  (1)-tyylisesti,  mutta
       muokattuna näin:

       (1)  Merkkijono ‘\n’ tarkoittaa rivinvaihtoa, joka löytyy 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
            välistä.   (Jos  jälkimmäinen  osoite on rivinumero ja on pienempi
            tai yhtäsuuri kuin ensimmäinen,  vain  yksi  rivi  valitaan.)  Kun
            jälkimmäinen  osoite  on löytynyt, sed aloittaa uudelleen etsimään
            ensimmäistä osoitetta. Näitä alueita voi olla useita.

       Käänteisoperaattori ’!’ voi edeltää komentoa, jolloin osoitteet,  joita
       ei valittu osoitteiden perusteella, ovat komennon kohteena.

       Alla  olevassa  funktioiden  listassa  sallittujen  osoitteiden  määrän
       yläraja jokaiselle funktiolle on ilmoitettu sulkujen sisällä.

       "teksti"-parametrit sisältävät yhden tai useamman  rivillisen  tekstiä.
       Jos   viimeisenä  merkkinä  rivillä  on  kenoviiva,  jatketaan  teksti-
       parametrin  lukemista  seuraavalla  rivillä,  muulloin  aletaan   etsiä
       seuraavaa komentoa.  Laita komennon perään ainoastaan yksi kenoviiva.

       Tekstissä   kenoviivoja   käytetään   suojelemaan   seuraavaa   merkkiä
       (sarkaimet ja rivinvaihtomerkit  jne.),  jotta  komentotulkki  ymmärtää
       oikein skripteistä löytyvät erikoismerkit.

       Parametrien,   joita   merkitään  "ltiedosto"  (luku)  tai  "ktiedosto"
       (kirjoitus),   täytyy   olla   viimeisinä   komentorivillä.    Jokainen
       kirjoitettava tiedosto luodaan ennen muokkauksen aloittamista. Enintään
       10 kirjoitustiedostoa 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,
            hypätään skriptin loppuun.

       c "teksti"   (2)
            Vaihda.  Poistaa tämänhetkisen tekstipuskurin. Tulostaa tekstin ja
            aloittaa seuraavan kierroksen.

       d          (2)
            Poistaa   tämänhetkisen   tekstipuskurin.    Hyppää    seuraavalle
            kierrokselle.

       D          (2)
            Poistaa ensimmäisen rivin tämänhetkisestä tekstipuskurista (kaikki
            merkit  ensimmäiseen   rivinvaihtomerkkiin   asti)   ja   aloittaa
            seuraavan kierroksen.

       g          (2)
            Korvaa    tämänhetkisen    tekstipuskurin    sisällön   pitopaikan
            sisällöllä.

       G          (2)
            Lisää pitopaikan sisällön tämänhetkisen tekstipuskurin loppuun.

       h          (2)
            Kopioi tämänhetkisen tekstipuskurin pitopaikkaan.

       H          (2)
            Lisää tämänhetkisen tekstipuskurin pitopaikan loppuun.

       i "teksti"   (1)
            Lisää teksti vakiotulosteeseen.

       l          (2)
            Listaa valitun alueen vakiotulosteeseen.  Valitsinta  "w"  voidaan
            käyttää   samoin   kuin   s-komennossa,   joka   seuraa  alempana.
            Tulostumattomat merkit tulostetaan näin:

               \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  tämänhetkisen  tekstipuskurin   vakiotulosteeseen.   Lukee
            seuraavan rivin syötteestä tilalle.

       N          (2)
            Lisätään     seuraava     rivi    vakiosyötteestä    tämänhetkisen
            tekstipuskurin     perään,     väliin      kuitenkin      lisätään
            rivinvaihtomerkki. Tämänhetkinen rivinumero vaihtuu.

       p          (2)
            Tulosta. Kopioi tämänhetkisen tekstipuskurin vakiotulosteeseen.

       P          (2)
            Kopioi  ensimmäisen rivin tämänhetkisestä tekstipuskurista (kaikki
            merkit ensimmäiseen rivinvaihtomerkkiin asti) vakiotulosteeseen.

       q          (1)
            Lopeta. Hypätään skriptin loppuun, eikä aloiteta uutta  kierrosta.

       r "ltiedosto"  (1)
            Lukee  ltiedoston  sisällön  ja  laittaa  sen  tulostukseen  ennen
            seuraavan syöterivin lukemista.

       s/säännöllinen lauseke/korvaaja/liput         (2)
            Korvaa    säännöllisen    lausekkeen    esiintymät     korvaajalla
            tämänhetkisestä  tekstipuskurista.  Kaikia  merkkejä,  paitsi ‘/’,
            voidaan käyttää.  Katso ed(1), jos tarvitset  tarkempaa  kuvausta.
            Liput ovat seuraavat:

            g   --   Yleinen.   Korvaa  kaikki  esiintymät,  jotka  eivät  ole
            päällekkäin pelkän yhden korvauksen sijaan.

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

            w -- Lisää tämänhetkinen tekstipuskuri tiedostoparametriin,  kuten
            w-komennossa, kun korvaus on tehty. Vakiotulostetta käytetään, jos
            tiedostoparametrejä ei ole annettu.

       t "nimi"  (2)
            Hyppää jos. Hypätään komentoon ‘:’, jolla on annettu nimi, jos  on
            tehty  yksikin  korvaus  viimeisen syötteen lukemisen tai ‘t’- tai
            ‘T’-komentojen suorituksen jälkeen. Jos nimeä ei annettu, hypätään
            skriptin loppuun.

       T "nimi"  (2)
            Hyppää virheen sattuessa. Hypätään komentoon ‘:’, jolla on annettu
            nimi, jos yksikin  korvaus  on  epäonnistunut  viimeisen  syötteen
            lukemisen  tai  ‘t’-  tai  ‘T’-komentojen suorituksen jälkeen. Jos
            nimeä ei annettu, hypätään skriptin loppuun.

       w "ktiedosto"  (2)
            Kirjoita. Lisää tämänhetkinen tekstipuskuri tiedostoon.

       W "ktiedosto"  (2)
            Kirjoita ensimmäinen rivi. Lisää ensimmäinen rivi  tämänhetkisestä
            tekstipuskurista tiedostoon.

       x          (2)
            Vaihtaa   keskenään  tämänhetkisen  tekstipuskurin  ja  pitopaikan
            sisällön.

       y /teksti1/teksti2/      (2)
            Korvaa.  Korvaa  jokainen  teksti1:sen  esiintyminen  teksti2:lla.
            Tekstien täytyy olla yhtä pitkiä.

       ! "komento"              (2)
            Kaikki  paitsi.  Asettaa funktion (tai ryhmittymän, jos funktio on
            ‘{’) valitsemaksi alueeksi  ainoastaan  rivit,  joita  ei  valittu
            osoitteiden perusteella.

       : "nimi"  (0)
            Tämä  komento  ainoastaan  asettaa  nimen paikan hyppäyskomentojen
            käyttöön.

       =          (1)
            Tulosta   tämänhetkinen   rivinumero   vakiotulosteeseen    omalle
            rivilleen.

       {          (2)
            Suorittaa  aaltosulkujen  (‘{’  ja  ‘}’)  välissä  olevat komennot
            ainoastaan, kun tämänhetkinen rivi kuuluu valittuun alueeseen.

       Tyhjät komennot ohitetaan.

SIIRRETTÄVYYS

       Tämä  ohjelma  on  kehitetty  BSD  4.1  UNIX  sedistä,  tutkimalla  sen
       toimintaperiaatetta   ja   on   yhteensopiva   sen  kanssa  (tekijöiden
       tietämyksen ja testauksien mukaan). Kaikki BSD 4.1 sedin  dokumentoidut
       ominaisuudet ovat tuettuja.

       Yksi   dokumentoimaton   ominaisuus   (jos   ’n’  aloittaa  ensimmäisen
       kommentin,  aiheuttaa   se   saman   vaikutuksen   kuin   valitsin   -n
       komentorivillä) on jätetty 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 pidemmilläkin tekstin pätkillä.

       Seuraavat lisäykset vanhoihin komentoihin on tehty:

       *    Komennot   a   ja   i   eivät   vaadi  tekstin  alkuun  kenoviiva-
            rivinvaihtoyhdistelmää.    Tosin   yhteensopivuussyistä   se    on
            suositeltavaa.

       *    Komennot r ja w eivät vaadi väliä ennen tiedostonimeä.

       *    Valitsimien g, p ja P järjestyksellä ei ole väliä s-komennossa.

       Seuraavat lisäykset säännöllisten lausekkeiden kielioppiin on tehty.

       *    \t   tunnistetaan   säännöllisissä  lausekkeissa  (ja  muuallakin)
            sarkaimen pakottajana.

       *    Säännöllisissä lausekkeissa  +  tarkoittaa,  että  edellinen  pala
            esiintyy vähintään kerran.

       Nämä ominaisuudet ovat uusia:

       *    l-komento  (listaus,  dokumentoimaton  ja  huono  versio  tästä on
            olemassa jo BSD:ssä).

       *    W-komento (kirjoita tekstipuskurin ensimmäinen rivi tiedostoon).

       *    T-komento (hyppää viimeisen korvauksen epäonnistuessa).

       *    Komentoriveillä komentojen perässä sallitaan nyt kommentit.

       Myös sedin virheilmoitukset on tehty tarkemmiksi ja  opettavaisemmiksi.

       Tämä  toteutus  on myös huomattavasti pienempi ja nopeampi kuin BSD 4.1
       sed.  Käyttää 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 MYÖS

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

TEKIJÄ

       Tämän  mansivun  kirjoitti  Eric  S.  Raymond  <esr@snark.thyrsus.com>,
       kuitenkin sed-paketti, jonka mukana tämä tulee on GNU:lta.