Available in

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

TOC

sed(1)                                                                  sed(1)



NAZWA

       sed - edytor strumieniowy

SKADNIA

       sed [-n] [-g] [-e skrypt ] [-f splik ] [ plik ] ...

OPIS

       Sed kopiuje podane pliki (lub domylnie standardowe wejcie) na standard-
       owe wyjcie, przy okazji edytujc przepywajce dane wedug komend  zadanych
       w skrypcie.

       Opcja  -e  zacza  pojedyncz  komend edycyjn z nastpujcego po niej argu-
       mentu; jeli jest ich [komend] wicej, to s one  wykonywane  w  kolejnoci
       pojawienia  si.  Jeli jest tam tylko opcja -e i nie ma -f, flag -e mona
       pomin.

       Opcja -f powoduje, e komendy s pobieranego z pliku "splik";  jeli  jest
       ich  kilka, to s one wykonywane w kolejnoci pojawienia si; komendy -e i
       -f mona ze sob czy.

       Opcja -g powoduje, e sed zachowuje si tak, jakby kada z komend  skryptu
       miaa przyrostek g.

       Opcja -n hamuje domylne wyjcie.

       Skrypt  skada  si  z  komend,  po  jednej na lini, uoonych w nastpujcej
       postaci:

            [adres [, adres] ] funkcja [argumenty]

       Normalnie sed cyklicznie kopiuje linie wejcia do  biecego  bufora  tek-
       stowego,  a  nastpnie  dokonuje  kolejno  wszystkich komend edycyjnych,
       ktrych adresy wybieraj bufor, a potem przesya bufor na standardowe wyj-
       cie i czyci go.

       Opcja -n hamuje normalne wyjcie (tak, e ma miejsce tylko wyjcie p i w).
       Podobnie niektre komendy (n,M) robi samodzielne odczyty linii, a  niek-
       tre  inne (d,D) powoduj, e komendy nastpujce za nimi w danym skrypcie s
       pomijane (komenda D hamuje te czyszczenie biecego bufora tekstowego, co
       ma normalnie miejsce przed nastpnym cyklem).

       Pomocnym  jest  te  wiedzie, e istnieje drugi bufor (nazywany `miejscem
       przechowywania', ktry moe by kopiowany, lub doklejany,  lub  skadany  z
       biecym buforem.

       Adres jest: liczb dziesitn (ktra odpowiada linii, gdzie numery linii to
       liczby zaczynajce si od 1, do ostatniej linii  pliku),  lub  `$',  ktry
       adresuje  ostatni  lini  wyjcia,  lub  kontekstowym  adresem, ktry jest
       `/wyraeniem regularnym/' w zmodyfikowanym stylu ed (1), wic:


       (1)  Sekwencja specjalna `0 odpowiada nowej linii osadzonej w  buforze,
            a `' odpowiada tabulacji.

       (2)  Linia komend bez adresw wybiera kady bufor.

       (3)  Linia  komend  z jednym adresem wybiera kady bufor, ktry odpowiada
            temu adresowi.

       (4)  Linia komend z dwoma adresami odpowiada wcznemu zasigowi od  pier-
            wszego  bufora  wejciowego,  do drugiego, odpowiadajcego adresowi.
            (Jeli drugi adres jest liczb mniejsz  lub  rwn  numerowi  podanemu
            najpierw,  to  wybierana  jest  tylko jedna linia.) Gdy dopasowany
            jest drugi adres, sed zaczyna ponownie szuka pierwszego;  tak  wic
            dowolna liczba tych zasigw bdzie porwnywana.

       Operator negacji `!', znany z C, moe i tu mie zastosowanie, wskazujc, e
       komenda odnosi si do linii nie wybranych w adresach.

       W nastpujcych funkcjach, maksymalna liczba adresw jest wskazana w  naw-
       iasie.

       Argument  oznaczony  jako  "tekst" skada si z jednej, lub wikszej iloci
       linii, w ktrych wszystkie, poza ostatni musz koczy si `', aby ukry  now
       lini.

       Odwrotne  ukoniki  w  tekcie s traktowane jak odwrotne ukoniki w acuchu
       zamiany komendy `s' i mog by uywane do  chronienia  pocztkowych  biaych
       spacji.

       Argument  oznaczony  jako  "rplik"  i  "wplik" musi by ostatnim w linii
       komend.  Kady wplik jest tworzony zanim  rozpocznie  si  przetwarzanie.
       Dopuszczaln iloci argumentw wplikw jest 10.

       a "tekst"   (1)
            Doklej. Docz tekst na wyjcie przed odczytaniem nastpnej linii wej-
            cia.

       b "etykieta"  (2)
            Przejd si do komendy `:', przechowujcej etykiet. Jeli  nie  podano
            etykiety, przejd na koniec skryptu.

       c "tekst"   (2)
            Zmie.  Skasuj biecy tekst z bufora. Z adresem 0 lub 1, lub na kocu
            dwuadresowego zasigu, docz tekst  na  wyjciu.  Rozpocznij  nastpny
            cykl.

       d          (2)
            Skasuj biecy bufor tekstowy. Rozpocznij nowy cykl.

       D          (2)
            Skasuj  pierwsz lini biecego bufora tekstowego (wszystkie znaki, a
            do pierwszej nowej linii). Rozpocznij nowy cykl.

       g          (2)
            Zamie zawarto biecego bufora tekstowego z zawartoci miejsca  prze-
            chowywania.

       G          (2)
            Doklej  zawarto  miejsca  przechowywania  do  biecego  bufora tek-
            stowego.

       h          (2)
            Skopiuj biecy bufor tekstowy do miejsca przechowywania.

       H          (2)
            Doklej kopi biecego bufora tekstowego do miejsca przechowywania.

       i "tekst"   (1)
            Wstaw. Wstaw tekst na standardowe wyjcie.

       l          (2)
            Listuj. Wysya przestrze wzorcw na standardowe  wyjcie.  Opcja  "w"
            moe  wystpi jak w komendzie s, opisanej niej. Niedrukowane znaki s
            rozszerzane do:

               \b  --  backspace  (ASCII 08)
               \t  --  tabulacja  (ASCII 09)
               \n  --  nowa linia (ASCII 10)
               \r  --  return     (ASCII 13)
               \e  --  escape     (ASCII 27)
               \xx --  znak ASCII odpowiadajcy dwm cyfrom szesnastkowym.

       n          (2)
            Kopiuj biecy bufor tekstowy  na  standardowe  wyjcie.  Wczytaj  do
            bufora now lini.

       N          (2)
            Doklej  nastpn lini wejcia do biecego bufora tekstowego, wstawiajc
            midzy nie osadzon now lini. Zmienia si biecy numer linii.

       p          (2)
            Drukuj. Kopiuj biecy bufor tekstowy na standardowe wyjcie.

       P          (2)
            Kopiuj pierwsz lini biecego bufora tekstowego (wszystkie  znaki  a
            do pierwszej nowej linii) na standardowe wyjcie.

       q          (1)
            Zakocz. Przejd na koniec skryptu. Nie rozpoczynaj nowego cyklu.

       r "rplik"  (1)
            Czytaj  zawarto  rpliku.  Wstaw  j  na  wyjciu przed przeczytaniem
            nastpnej linii wejciowej.

       s /wyraenie regularne/zamiennik/flagi         (2)
            Podmie  znalezione  wyraenia  regularne  na  zamiennik  (w  biecym
            buforze  tekstowym).  Zamiast  `/'  mona  uy  dowolnego znaku. Dla
            dokadniejszego opisu zobacz ed (1).  Flagi to  zero  lub  wicej  z
            nastpujcych:

            g  --  Globalnie.  Podmieniaj  wszystkie  niezachodzce  na  siebie
            instancje
                 acucha, a nie tylko pierwsz z nich.

            p -- Drukuj przestrze wzorcw po dokonaniu podmiany.

            w -- Zapisuj. Doklej biecy bufor tekstowy do argumentu  plikowego,
            tak jak
                 w komendzie w (o ile zostanie dokonana podmiana). Standardowe
            wyjcie
                 jest uywane jeli nie podano argumentu plikowego.


       t "etykieta"  (2)
            Gaziowy test `jeeli'. Przejd do komendy `:' o  podanej  etykiecie,
            jeli  dokonano  jakichkolwiek  podmian od ostatniego odczytu linii
            wejciowej, lub wywoania `t' lub `T'.  Jeli  nie  podano  etykiety,
            przejd na koniec skryptu.

       T "etykieta"  (2)
            Przeskocz  przy  bdzie. Przejd do komendy `:' o podanej etykiecie,
            jeli nie dokonano podmian od ostatniego wczytania linii wejciowej,
            lub od uycia komendy `t' lub `T'. Jeli nie podano etykiety, przejd
            na koniec pliku.

       w "wplik"  (2)
            Zapisz. Doklej biecy bufor tekstowy do wpliku.

       W "wplik"  (2)
            Zapisz pierwsz lini. Doklej pierwsz lini biecego bufora tekstowego
            do wpliku.

       x          (2)
            Wymie  zawarto biecego bufora tekstowego i miejsca przechowywania.

       y /acuch1/acuch2/      (2)
            Tumacz. Podmie kade pojawienie si znaku ze  acucha1  odpowiadajcym
            mu znakiem z acucha2. Dugoci tych znakw musz by identyczne.

       ! "komenda"              (2)
            Wszystko-poza.  Zastosuj  funkcj  (lub grup, jeli funkcj jest `{')
            tylko do linii nie wybranych przez adres(y).

       : "etykieta"  (0)
            Komenda ta nie robi  niczego  poza  przechowywaniem  etykiety  dla
            komend `b' i `t'.

       =          (1)
            Wstaw biecy numer linii na standardowe wyjcie jako lini.

       {          (2)
            Wywoaj  nastpujce  komendy,  a do zamykajcego `}' tylko jeli bieca
            linia odpowiada adresowi lub podanemu zasigowi adresw.

       Pusta komenda jest ignorowana.


PRZENONO

       Narzdzie to byo  wyprowadzone  z  UNIX-a  4.1  BSD  i  (o  ile  wiadomo
       autorowi)  jest  z  nim kompatybilne. Wszystkie udokumentowane waciwoci
       seda z BSD s wspierane.

       Pominito jedn nieudokumentowan waciwo (prowadzcy `n' w pierwszym komen-
       tarzu, majcy takie same dziaanie jak -n opcja linii komend).

       Poprawiono nastpujce bdy i ograniczenia:

       *    Nie  ma  ukrytego  limitu  dugoci (40 w sedzie BSD) na dugoci nazw
            plikw.

       *    Nie ma limitu dugoci (8 w sedzie BSD) na dugo etykiet.

       *    Komenda `exchange' dziaa teraz dla dugich wzorcw  i  miejsc  prze-
            chowania.

       Poczyniono nastpujce rozszerzenia istniejcych komend:

       *    komendy  a, i nie naciskaj na prowadzcy znak odwrotnego ukonika-\n
            w tekcie.

       *    komendy r, w nie naciskaj na bia spacj przed nazw pliku.

       *    Opcje g, p i P w komendach s mog by podawane w dowolnej kolejnoci.

       Poczyniono pewne rozszerzenia do skadni wyrae regularnych:

       *    \t jest rozpoznawane jako sekwencja specjalna tabulacji.

       *    Wewntrz RE, + woa o 1..n powtrze poprzedniego wzorca.

       Nastpujce waciwoci s cakowicie nowe:

       *    Komenda l (listuj, nieudokumentowana i sabsza w BSD)

       *    Komenda W (zapisz pierwsz lini przestrzeni wzorcw do pliku).

       *    Komenda T (przeskocz, jeli nie udao si podstawienie).

       *    Dozwolone s w liniach komend koczce komentarze.

       Dodatkowo,  komunikaty o bdach seda stay si bardziej konkretne i infor-
       matywne.

       Implementacja jest rwnie sporo mniejsza i szybsza ni  sed  z  4.1  BSD.
       Uywa jedynie standardowej biblioteki I/O i exit(3).


UWAGA

       Jest  to komponent freeware systemw operacyjnych GNU i MINIX. Uytkownik
       ma wic pozwolenie na uywanie, modyfikowanie i reprodukcj  oraz  dystry-
       bucj jego pod nastpujcymi warunkami:

       1.  Notka  o  autorze, pojawiajca si w kadym pliku rdowym nie moe zosta
       skasowana, ani poprawiana.

       2. Forma obiektowa nie moe by rozprowadzana bez rde.


ZOBACZ TAKE

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


AUTOR

       Ta strona podrcznika  man  zostaa  napisana  przez  Erica  S.  Raymonda
       <esr [AT] snark.com>, a zaczony pakiet jest z GNU.



                               Listopad 19, 1995                        sed(1)

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.