Provided by: manpages-hu_20010119-6_all bug

NÉV

       sed - folyamszerkesztő (stream editor)

ÁTTEKINTÉS

       sed [-n] [-g] [-e script ] [-f sfile ] [ file ] ...

LEÍRÁS

       A  `sed'  program  a  megnevezett fájlokat (alapértelmezés szerint a standard bemenetet) a
       szabványos kimenetre másolja, de közben egy parancsokat tartalmazó szkriptnek  megfelelően
       megszerkeszti.

       A  `-e'  opció  az  egyszerű  szerkesztést  jelenti:  a  szerkesztő  parancsot a következő
       argumentumból  veszi.  Amennyiben  több  `-e'  is  van   a   parancssorban,   megjelenésük
       sorrendjében  hajtja  őket végre. Amennyiben csak egyetlen `-e' opció van és nincs `-f', a
       `-e' elhagyható.

       A `-f' opció azt eredményezi, hogy a parancsokat az  "sfile"  fájlból  veszi.   Amennyiben
       több  is  van  belőlük,  megjelenésük  sorrendjében kerülnek végrehajtásra. A `-e' és `-f'
       opciók keverhetők.

       A `-g' opció azt eredményezi, mintha minden helyettesítési parancsnak `g' végződése lenne.

       A `-n' opció elnyomja az alapértelmezett kimenetet.

       A szkript soronként egy parancsot tartalmaz az alábbi forma szerint:

               [cím [, cím] ] függvény [argumentumok]

       Általában a sed ciklikusan bemásol az  aktuális  szövegpufferbe  egy  sort  a  bemenetről,
       azután  sorra  alkalmazza  azokat  a  parancsokat,  amelyek  a  cím(ek)  alapján  a  sorra
       vonatkoznak, végül a puffert a szabványos kimenetre másolja és törli.

       A `-n' opció elnyomja a normális kimenetet, így csak  a  `p'  és  `w'  parancsok  kimenete
       készül el.

       Néhány  parancs  (n,  N)  saját sorolvasást végez, és néhány másik (d, D) a szkript minden
       további utasítását átugorja. (A  `D'  parancs  elnyomja  a  szövegpuffer  törlését,  amely
       normálisan bekövetkezne a következő ciklus előtt.)

       Azt  is  hasznos tudni, hogy létezik egy második puffer (`hold space'), amelyik másolható,
       hozzáfűzhető vagy felcserélhető az aktuális szövegpufferrel.

       A címzés egy decimális számjegy, `$'-jel, vagy tartalmi címzés lehet. A decimális  jegy  a
       legelső  beolvasott  sor  esetén 1, és folyamatosan egyesével növekszik az összes bemeneti
       fájl sorain keresztül. A `$'-jel az utolsó bemeneti sort jelenti.

       A  tartalmi  címzés  egy  `/szabályos  kifejezés/'  az  ed  (1)  stílusában,  a  következő
       különbségekkel:

       (1)  A `0 jelsorozat egy pufferbe ágyazott újsor-jellel egyezik meg, `' pedig egy tab-bal.

       (2)  Címek nélküli parancssor minden puffert kiválaszt.

       (3)  Egy  címzéssel rendelkező parancssor minden olyan puffert kiválaszt, amely megfelel a
            címzésnek.

       (4)  Két címzéssel rendelkező parancssor egy tartományt választ ki, melybe beleértendők  a
            megadott  határok  is.   A tartomány annál az első bemeneti puffernél kezdődik, amely
            megfelel az első címzésnek, és annál végződik,  amely  ezután  először  felel  meg  a
            másodiknak.  Amennyiben a második címzés egy szám, amely kisebb vagy egyenlő, mint az
            elsőnek kiválasztott sor száma, csak egy sor kerül kiválasztásra.  Mihelyt a  második
            cím  is  megegyezést  mutat,  a  sed program újrakezdi az első címzéssel való egyezés
            keresését; így tetszőleges számú, a címzésnek megfelelő tartomány  egyezést  mutat  a
            címzéssel.

       A  `!'  negáló  operátor  azt  eredményezi,  hogy  a  parancs azokra a sorokra vonatkozik,
       amelyeket a címzés nem választott ki.

       A függvények  következő  listájában  zárójelben  megadjuk  a  függvény  által  megengedett
       címzések maximális számát.

       A  "szöveg"-gel jelölt argumentumok egy vagy több sorból állhatnak, melyek közül az utolsó
       kivételével mind `\'-re kell végződjön. (A `\' jel elrejti a sorvégjelet.)

       A szövegbeli backslash (fordított törtvonal) jeleket a program úgy  kezeli,  mint  az  `s'
       parancs  helyettesítési  stringjében  levőket,  és  ezek  a backslash jelek használhatók a
       kezdeti  szóközök  és  tabulátorok  (whitespace  karakterek)  megvédésére.  Alapértelmezés
       szerint ugyanis ezeket a bevezető jeleket figyelmen kívül hagyja a sed.

       Az  "rfile"  és  "wfile"  jelölésű argumentumok a parancssor legvégén kell álljanak. A sed
       minden  "wfile"-t  létrehoz  a  feldolgozás  megkezdése  előtt.   Legfeljebb  10   "wfile"
       argumentum lehet.

       A következőkben ismertetjük a sed által ismert függvényeket.

       a "szöveg"   (1)
            Csatolás  (append).  A "szöveg"-et a kimenetre írja a következő bemeneti sor olvasása
            előtt.

       b "címke"  (2)
            Elágazás (branch) a "címkét" viselő `:' parancsra. Amennyiben  nincs  megadva  címke,
            elágazás a szkript végére.

       c "szöveg"   (2)
            Csere  (change).  Törli  az  aktuális  szövegpuffert. 0 vagy 1 címzéssel, illetve egy
            kétcímzéses tartomány végén elhelyezi a "szöveg"-et a kimeneten. Elkezdi a  következő
            ciklust.

       d          (2)
            Törli (delete) az aktuális szövegpuffert. Elkezdi a következő ciklust.

       D          (2)
            Törli  az  aktuális  szövegpuffer  első sorát, azaz az első újsor-karakter előtt álló
            karaktereket és ezt az újsor-jelet.  Elkezdi a következő ciklust.

       g          (2)
            Helyettesíti az aktuális szövegpuffer  tartalmát  a  második  puffer  (`hold  space')
            tartalmával.

       G          (2)
            Az  aktuális  szövegpuffer  tartalmához  hozzáfűzi  a  második  puffer (`hold space')
            tartalmát.

       h          (2)
            Az aktuális szövegpuffer tartalmát a második pufferbe másolja.

       H          (2)
            Az aktuális szövegpuffer tartalmát a második pufferhez fűzi.

       i "szöveg"   (1)
            Beilleszt (insert). Kiírja a "szöveg"-et a szabványos kimenetre.

       l          (2)
            Listáz. Kiküldi a mintaterületet a szabványos kimenetre. Az `s' parancshoz  hasonlóan
            egy  `w'  opció  követheti. A nem nyomtatható karakterek az alábbiak szerint kerülnek
            kifejtésre:

               \b  --  backspace (ASCII 08)
               \t  --  tab       (ASCII 09)
               \n  --  newline   (ASCII 10)
               \r  --  return    (ASCII 13)
               \e  --  escape    (ASCII 27)
               \xx --  a kétjegyű xx hexadecimális számmal megadható ASCII karakter.

       n          (2)
            Az aktuális szövegpuffer tartalmát  a  szabványos  kimenetre  másolja,  és  beolvassa
            helyette a következő bemeneti sort.

       N          (2)
            A  következő  bemeneti  sort  az aktuális szövegpuffer tartalmához fűzi, miközben egy
            újsor-jelet illeszt közéjük. Az aktuális sor száma megváltozik.

       p          (2)
            Nyomtat (print). Az aktuális szövegpuffer tartalmát a szabványos kimenetre másolja.

       P          (2)
            Az  aktuális  szövegpuffer  első  sorát,  azaz  az  első  újsor-karakter  előtt  álló
            karaktereket a szabványos kimenetre másolja.

       q          (1)
            Kilépés (quit). Elégazás a szkript végére. Nem kezd új ciklust.

       r "rfile"  (1)
            Belovassa  (read)  az  "rfile" tartalmát és a kimenetre írja, még mielőtt a következő
            bemeneti sort beolvasná.

       s /szabályos kifejezés/helyettesítés/zászlók         (2)

            A szabályos kifejezés előfordulásait helyettesíti az aktuális szövegpufferben. A  `/'
            kivételével  minden  karakter használható. Teljesebb leírást lásd az ed (1) kézikönyv
            lapján.  A zászlók a következők lehetnek: (Bármelyikük előfordulhat, de az is  lehet,
            hogy egyikük sem.)

            g  --  Globális.  A  string  minden  nem  átfedő  megjelenését helyettesíti. Ha nincs
            megadva, csak az első megjelenés helyettesítődik.

            p -- Kinyomtatja (print) a minta területet ha helyettesítés történt.

            w -- Írás (write). Az aktuális szövegpuffert egy argumentumként megadott fájlhoz fűzi
            hozzá, ahogy a `w' parancsban, ha helyettesítés történik. Ha nincs fájl argumentum, a
            szabványos kimenetre történik az írás.

       t "címke"  (2)
            Feltételes elágazás.  Elágazás  a  címkével  jelzett  `:'  paracshoz,  ha  valamilyen
            helyettesítés történt a bemeneti fájl legújabb olvasása vagy a legutóbbi `t' vagy `T'
            végrehajtása óta. Ha nincs megadva címke, akkor a szkript végére történik elágazás.

       T "címke"  (2)
            Ellentéte a `t' parancsnak. Elágazás a címkével jelzett `:' paracshoz,  ha  semmilyen
            helyettesítés sem történt a bemeneti fájl legújabb olvasása vagy a legutóbbi `t' vagy
            `T' végrehajtása óta. Ha  nincs  megadva  címke,  akkor  a  szkript  végére  történik
            elágazás.

       w "wfile"  (2)
            Írás (write). Az aktuális szövegpuffert a "wfile" fájl tartalmához fűzi.

       W "wfile"  (2)
            Az aktuális szövegpuffer első sorát a "wfile" fájl tartalmához fűzi.

       x          (2)
            Felcseréli  (exchange)  az  aktuális  szövegpuffer  tartalmát a második puffer (`hold
            space') tartalmával.

       y /string1/string2/      (2)
            Fordít.  A  string1-ben  előforduló  karaktereket  a  string2-ben  azonos  pozícióban
            előfordulóval helyettesíti. A stringek hossza egyenlő kell legyen.

       ! "parancs"              (2)
            Kivétel. Azokra a sorokra alkalmazza a függvényt (vagy csoportot, ha a függvény `}'),
            amelyek nem lettek kiválaszva a címzés(ek)kel.

       : "címke"  (0)
            Ez a parancs semmit sem csinál, csak a  `b'  és  `t'  parancsok  elágazásaihoz  visel
            címkét.

       =          (1)
            Az aktuális sorszámot a szabványos kimenetre írja, mint egy külön sort.

       {          (2)
            Parancs  csoprotosítás. A következő `}'-ig adott parancsokat végrehajtja a címzés(ek)
            által meghatározott sorokra.

       Az üres parancsot figyelmen kívül hagyja.

ÁTVIHETŐSÉG

       Ez az eszköz a BSD 4.1 UNIX sed-je alapján fordított tervezéssel készült, és (amennyire  a
       szerző  tudása  és a tesztek meg tudják határozni) kompatíbilis azzal. A BSD 4.1 sed-jének
       minden dokumentált lehetősége adott.

       Egy dokumentálatlan tulajdonság (az első megjegyzést bevezető `n'  azonos  hatását  a  `-n
       parancssor-opció'-val) nem került implementálásra.

       A  BSD  sed-hez  képest  javítások  is  történtek,  melyeket  itt  terjedelmi  okokból nem
       tárgyalunk.

MEGJEGYZÉS

       Ez a program  egy  `freeware'  komponense  a  GNU  és  MINIX  operációs  rendszereknek.  A
       felhasználó itt megkapja a jogokat a program használatára, módosítására és terjesztésére a
       következő feltételek mellett:

       1. A szerzőségre vonatkozó megjegyzést minden forrásfájlban változatlanul meg kell hagyni.

       2. A lefordított változat forráskód nélkül nem terjeszthető.

LÁSD MÉG

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

SZERZŐ

       Ezt a kézikönyv lapot Eric S. Raymond <esr@snark.thyrsus.com> írta, habár a sed  csomag  a
       GNU-tól származik.

MAGYAR FORDÍTÁS

       Horváth András <horvatha@rs1.szif.hu>

                                        November 19, 1995                                  sed(1)