Provided by: manpages-hu_20010119-5_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)