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)