Provided by: manpages-pl_20051117-1_all bug

NAZWA

       ed, red - edytor tekstu

SKŁADNIA

       ed [-] [-Gs] [-p acuch] [plik]

       red [-] [-Gs] [-p acuch] [plik]

OPIS

       ed  jest  zorientowanym  liniowo  edytorem  tekstu.   Jest o używany do
       tworzenia, wyświetlania, modyfikowania  i  innych  działań  na  plikach
       tekstowych.   red  to  ed zastrzeżony (restricted): może edytować tylko
       pliki z bieżącego katalogu i nie może wykonywać komend powłoki.

       Po wywołaniu z argumentem pliku, jego kopia jest odczytywana do  bufora
       edytora.   Wszelkie  zmiany  robione są na tej kopii, nie na pliku jako
       takim.  Podczas kończenia pracy z  ed,  wszelkie  zmiany,  których  nie
       zachowano komendą `w' są tracone.

       Edycja  jest dokonywana w dwóch różnych trybach: komend i wprowadzania.
       Po  uruchomieniu,  ed  jest  w  trybie  komend.   W   trybie   tym   ze
       standardowego wejścia czytane są komendy, a następnie są one wykonywane
       na zawartości bufora edytora. Przykładowa komenda może wyglądać tak:

              ,s/old/new/g

       co zamienia wszystkie pojawienia się napisu old na new.

       Po podaniu komendy wprowadzania, takiej jak `a'  (append--dopisz),  `i'
       (insert--wstaw) lub `c' (change-zmień), ed wchodzi w tryb wprowadzania.
       Jest to podstawowe narzędzie wprowadzania tekstu do pliku. W trybie tym
       nie  ma  dostępnych  żadnych komend.  Zamiast tego, standardowe wejście
       jest bezpośrednio zapisywane do bufora edytora. Linie  składają  się  z
       tekstu,  aż  do  (łącznie)  znaku  nowej linii.  Tryb wprowadzania jest
       przerywany wprowadzeniem pojedynczej kropki w linii.

       Wszystkie komendy ed operują na całych liniach,  lub  zakresach  linii;
       np.   komenda  `d'  kasuje  (delete) linie; komenda `m' przenosi linie,
       itp.  Można też modyfikować tylko część linii, korzystając  z  narzędzi
       podmiany,  podanych  np.  w  powyższym  przykładzie.  Jednak  nawet tu,
       komenda `s' tyczy się do całych linii naraz.

       W ogólności, komendy ed składają się z zera lub więcej  adresów  linii,
       za  którymi  następuje  pojedynczy  znak  komendy  i  często  dodatkowe
       parametry; komendy mają więc strukturę:

              [adres [,adres]]komenda[parametry]

       Adresy wskazują linię, lub zakres linii, których dotyczy komenda. Jeśli
       podano   mniej  adresów  niż  potrzeba  komendzie,  używane  są  adresy
       domyślne.

   OPCJE
       -G      Wymusza kompatybilność wsteczną. Dotyczy komend `G', `V',  `f',
               `l', `m', `t', and `!!'.

       -s      Powstrzymuje diagnostykę. Powinno być używane jeśli standardowe
               wejście ed'a jest ze skryptu.

       -p acuch
               Podaje znak zachęty komend. Może to być włączane, lub wyłączane
               komendą `P'.

       plik    Określa  nazwę odczytywanego pliku. Jeśli plik jest poprzedzony
               wykrzyknikiem (!), to jest interpretowany jak komenda  powłoki.
               W  tym  wypadku to, co jest czytane, jest standardowym wyjściem
               pliku wywołanego przez sh(1).  Aby odczytać plik, którego nazwa
               rozpoczyna się od wykrzyknika, poprzedź go odwrotnym ukośnikiem
               (\).  Domyślna nazwa pliku jest ustawiana na file  tylko  jeśli
               nie jest poprzedzona wykrzyknikiem.

   ADRESOWANIE LINIOWE
       Adres  reprezentuje numer linii w buforze.  ed obsługuje adres biecy,
       który jest zazwyczaj przekazywany komendom  jako  domyślny  (w  wypadku
       niepodania  tego  argumentu).   Podczas pierwszego odczytu pliku, adres
       bieżący jest ustawiany na ostatnią linię. Ogólnie, adres  bieżący  jest
       ustawiany na ostatnią linię, dotkniętą przez komendę.

       Adres  linii  jest  konstruowany  z  jednej z baz z poniższej listy, za
       którą opcjonalnie  może  następować  offset  numeryczny.  Offsety  mogą
       zawierać  dowolne kombinacje cyfr, operatorów (np.  +, - i ^) i białych
       spacji.  Adresy są czytane od  lewej  do  prawej,  a  ich  wartości  są
       obliczane względem adresu bieżącego.

       Wyjątkiem  reguły,  że  adresy reprezentują numery jest adres address 0
       (zero).  Oznacza to "przed pierwszą linią," i jest legalne tam gdzie ma
       sens.

       Zakres  adresów  to  dwa adresy, oddzielone przecinkiem lub średnikiem.
       Wartość pierwszego adresu w zakresie nie może być większa od  drugiego.
       Jeśli  w  zakresie  podany  jest tylko jeden adres, to drugi adres jest
       ustawiany na podany.  Jeśli podano n-krotną parę adresów, gdzie n >  2,
       to  zakres  jest  określany  przez  ostatnie dwa adresy zestawu.  Jeśli
       oczekiwany jest tylko jeden adres, to używany jest ostatni.

       Każdy adres w zakresie przecinkowym jest interpretowany względem adresu
       bieżącego.  W  zakresie  średnikowym,  pierwszy  adres  jest używany do
       ustawienia adresu bieżącego, a drugi względem pierwszego.

       Rozpoznawane są następujące symbole adresowe.

       .       Adres bieżącej linii w buforze.

       $       Adres ostatniej linii w buforze.

       n       nta linia w buforze, gdzie n jest liczbą w zakresie [0,$].

       -

       ^       Poprzednia linia.  Jest to równoważne -1 i może być  powtarzane
               z rosnącym efektem.

       -n

       ^n      nta linia poprzednia, gdzie n jest liczbą nieujemną.

       +       Następna  linia.  Jest to równoważne +1 i może być powtarzane z
               rosnącym efektem.

       +n

       biała spacja n
               nta następna linia,  gdzie  n  jest  liczbą  nieujemną.   Biaa
               spacja,  za  którą  następuje liczba n jest interpretowana jako
               +n.

       ,

       %       Zakres od pierwszej do ostatniej linii. Jest to równoważne 1,$.

       ;       Zakres  od bieżącej do ostatniej linii. Jest to równoważne .,$.

       /re/    Następna   linia,   zawierająca   wyrażenie    regularne    re.
               Poszukiwanie  gdy jest to konieczne, zakręca na początek bufora
               i leci dalej  aż  do  linii  bieżącej.   //  powtarza  ostatnie
               szukanie.

       ?re?    Poprzednia    linia   zawierająca   wyrażenie   regularne   re.
               Poszukiwanie gdy jest to konieczne, zakręca na koniec bufora  i
               leci aż do linii bieżącej.  ?? powtarza ostatnie szukanie.

       'lc     Linia  poprzednio zaznaczona przez komendę `k' (marK), gdzie lc
               jest małą literą.

   WYRAŻENIA REGULARNE
       Wyrażenia regularne są wzorcami, używanymi  w  wybieraniu  tekstu.   Na
       przykład, komenda ed

              g/napis/

       drukuje  wszystkie  linie,  zawierające  napis.  Wyrażenia regularne są
       używane też przez komendę `s', gdzie wybierają stary tekst, zastępowany
       nowym.

       W  dodatku do podawania napisów, wyrażenia regularne mogą reprezentować
       klasy łańcuchów znakowych. Łańcuchy tak reprezentowane będą  odpowiadać
       wyrażeniom  regularnym.  Jeśli  jest  możliwe,  by  wyrażenie regularne
       dopasowało  kilka  napisów  w  linii,  to  wybierane  jest  dopasowanie
       najbardziej z lewej.

       Do konstruowania wyrażeń regularnych używane są następujące symbole:

       c       Dowolny  znak  c nie wymieniony niżej, łącznie z `{', '}', `(',
               `)', `<' i `>' oznacza samego siebie.

       \c      Znak c
                zacytowany lewym ukośnikiem, inny niż `{', '}', `(', `)', `<',
               `>', `b', 'B', `w', `W', `+' i `?' oznacza właśnie ten znak.

       Oznacza pojedynczy znak. (dowolny)

       [klasa-znakw]
               Oznacza  pojedynczy  znak  z klasy znakw.  Aby do klasy znakw
               włączyć `]', musi to być pierwszy znak.   Zakres  znaków  można
               przekazać,  rozdzielając  jego  końce  znakiem `-', np.  `a-z',
               który oznacza wszystkie  małe  litery.  Do  podawania  zestawów
               znaków w klasie znakw można używać następujących literałów:

                 [:alnum:]  [:cntrl:]  [:lower:]  [:space:]
                 [:alpha:]  [:digit:]  [:print:]  [:upper:]
                 [:blank:]  [:graph:]  [:punct:]  [:xdigit:]

               Gdy  znak `-' pojawia się jako pierwszy lub ostatni znak klasy-
               znakw, to dopasowuje sam siebie.  Wszystkie inne znaki  klasy-
               znakw odpowiadają same sobie.

               Wzorce w klasie-znakw postaci

                 [.col-elm.] lub   [=col-elm=]

               gdzie  col-elm  jest  elementem  porwnawczym są interpretowane
               według locale(5) (nie jest  to  obecnie  obsługiwane).   Zobacz
               regex(3) dla objaśnień tych konstrukcji.

       [^klasa-znakw]
               Odpowiada  dowolnemu  pojedynczemu  znakowi,  innemu  niż  nowa
               linia, który  nie  jest  w  klasie-znakw.   klasa-znakw  jest
               definiowana podobnie jak wyżej.

       ^       Jeśli  `^'  jest  pierwszym  znakiem  wyrażenia regularnego, to
               zaczepia wyrażenie regularne na początku linii.   W  przeciwnym
               wypadku oznacza `^'.

       $       Jeśli  `$'  jest  ostatnim  znakiem  wyrażenia  regularnego, to
               doczepia wyrażenie  regularne  do  końca  linii.  W  przeciwnym
               wypadku oznacza `$'.

       \(re\)  Definiuje podwyrażenie re.  Podwyrażenia mogą być zagnieżdżane.
               Kolejne wsteczne odniesienia postaci `\n', gdzie n jest cyfrą z
               zakresu  [1,9],  rozwijają się do tekstu dopasowanego przez nte
               podwyrażenie.  Na  przykład,  wyrażenie  regularne  `\(a.c\)\1'
               odpowiada  napisowi  `abcabc', lecz nie `abcadc'.  Podwyrażenia
               są porządkowane względem ich lewego ogranicznika.

       *       Odpowiada dopasowaniu poprzedzającego  znaku  lub  podwyrażenia
               zero   lub  więcej  razy.  jeśli  '*'  jest  pierwszym  znakiem
               wyrażenia  regularnego,  lub  podwyrażenia,  to  oznacza   '*'.
               Operator  `*'  daje czasem nieoczekiwane rezultaty. Na przykład
               wyrażenie  `b*'  dopasowuje  początek  napisu  `abbb',   według
               podnapisu `bbb'.

       \{n,m\}
       \{n,\}
       \{n\}   Odpowiada poprzedzającemu jednoznakowemu wyrażeniu regularnemu,
               lub podwyrażeniu, dopasowanemu przynajmniej  n  i  najwięcej  m
               razy.    Jeśli   m   jest   pominięte,   to  jest  tylko  dolne
               ograniczenie.  Jeśli pominięty jest też przecinek,  dopasowanie
               wymaga  dokładnie  n  powtórzeń.  Jeśli  któraś  z tych postaci
               pojawi się na początku, to jest interpretowana literalnie.  Np.
               `\{2\}' odpowiada `{2}', itd.

       \<
       \>      Zaczepia  wyrażenie  znakowe, lub podwyrażenie do początku (\<)
               lub końca (\>)  sowa,  czyli  w  ASCII  maksymalnego  łańcucha
               znaków alfanumerycznych, łącznie z podkreśleniem (_).

       Następujące  rozszerzone operatory są poprzedzane lewym ukośnikiem, aby
       odróżnić je od tradycyjnej składni ed.

       \`
       \'      Bezwarunkowo dopasowuje początek (\`) lub koniec (\') linii.

       \?      Opcjonalnie odpowiada pojedynczemu znakowi,  lub  podwyrażeniu,
               które  go  poprzedza. Np. wyrażenie `a[bd]\?c' odpowiada `abc',
               `adc' i `ac'.  Jeśli \? pojawia się na początku linii, to  jest
               traktowane literalnie jako `?'.

       \+      Odpowiada     pojedynczemu     znakowi,    lub    podwyrażeniu,
               poprzedzającemu go, a  powtarzającemu  się  jeden,  lub  więcej
               razy.  Tak  więc  wyrażenie  regularne `a+' jest skrótem `aa*'.
               Jeśli \+ pojawi się na początku linii, to odpowiada literalnemu
               `+'.

       \b      Odpowiada  początkowi  lub  końcowi (łańcuch zerowy) słowa. Tak
               więc   wyrażenie   regularne   `\bhello\b'   jest    równoważne
               `\<hello\>'.    Jednak,  `\b\b'  jest  prawidłowym  wyrażeniem,
               podczas gdy `\<\>' nim nie jest.

       \B      Odpowiada (łańcuchowi zerowemu) w słowie.

       \w      Odpowiada dowolnemu znakowi w słowie.

       \W      Odpowiada dowolnemu znakowi nie będącemu w słowie.

   KOMENDY
       Wszystkie komendy  ed  to  pojedyncze  znaki,  choć  niektóre  wymagają
       dodatkowych  parametrów.   Jeśli  parametry  komendy  rozciągają się na
       kilka linii, to każda linia poza ostatnią, powinna być zakończona lewym
       ukośnikiem (\).

       Ogólnie,  na  linię  dozwolona  jest  najwięcej  jedna komenda.  Jednak
       większość  komend  przyjmuje  przyrostek  drukowania,  który  może  być
       dowolnym  z  `p' (drukuj-print), `l' (listuj-list) , lub `n' (wyliczaj-
       eNumerate), który drukuje ostatnią linię, dotkniętą przez komendę.

       Przerwanie (zwykle ^C) ma  znaczenie  przerywania  bieżącej  komendy  i
       powracania do trybu komend.

       ed   rozpoznaje   następujące  komendy.  Komendy  pokazane  są  wraz  z
       domyślnymi adresami,  lub  zakresami,  dostarczanymi  gdy  nie  zostały
       podane (w nawiasach).

       (.)a    Dokleja  do  adresowanej  linii  bufora  linię,  która może być
               adresem zerowym.  Tekst jest wstawiany w  trybie  wprowadzania.
               Adres bieżący jest ustawiany na ostatnią wprowadzoną linię.

       (.,.)c  Zmienia  linie w buforze. Adresowane linie są kasowane, a w ich
               miejsce jest wklejany tekst. Tekst wprowadzany  jest  w  trybie
               wprowadzania.   Bieżący   adres   jest  ustawiany  na  ostatnią
               wstawioną linię.

       (.,.)d  Kasuje adresowane linie z bufora. Jeśli za skasowanym  zakresem
               jest   linia,  to  bieżący  adres  jest  na  nią  ustawiany.  W
               przeciwnym wypadku, jest ustawiany na  linię  przed  skasowanym
               zakresem.

       e plik  Edytuje  plik,  i ustawia domyślną nazwę pliku.  Jeśli plik nie
               jest podany, używana jest domyślna nazwa pliku.  Wszelkie linie
               bufora  są kasowane przed odczytem nowego pliku.  Bieżący adres
               jest ustawiany na ostatnią odczytaną linię.

       e !komenda
               Edytuje  standardowe  wyjście  `!komendy',   (zobacz   !komenda
               niżej).   Domyślna  nazwa  pliku  nie jest zmieniana.  Wszelkie
               linie bufora są kasowane  przed  odczytaniem  wyjścia  komendy.
               Bieżący adres jest ustawiany na ostatnią odczytaną linię.

       E plik  Edytuje  bezwarunkowo  plik.  Jest to podobne do komendy e lecz
               niezapisane zmiany są niszczone bez ostrzeżenia. Bieżący  adres
               jest ustawiany na ostatnią odczytaną linię.

       f plik  Ustawia  domyślną  nazwę  pliku  na  plik.  Jeśli plik nie jest
               podany, drukowana jest niecytowana domyślna nazwa pliku.

       (1,$)g/re/lista-komend
               Aplikuje list-komend do każdej linii, odpowiadającej  wyrażeniu
               regularnemu  re.   Bieżący  adres  jest  ustawiany  na  obecnie
               dopasowaną  linię  przed  wykonaniem  listy-komend.   Na  końcu
               komendy  `g'  adres  bieżący  jest ustawiany na ostatnią linię,
               dotkniętą przez list-komend.

               Każda komenda w licie komend musi być w oddzielnej  liście,  a
               każda  linia poza ostatnią musi być zakończona lewym ukośnikiem
               (\).  Dozwolone są wszystkie komendy poza `g', `G', `v', i `V'.
               Nowa linia w licie-komend jest równoważna komendzie `p'.

       (1,$)G/re/
               Interaktywnie edytuje linie odpowiadające wyrażeniu regularnemu
               re.  Dla każdej linii, linia jest drukowana  i  ustawiany  jest
               adres  bieżący,  a  użytkownik  jest pytany o wstawienie listy-
               komend.  Na końcu działania komendy  `G',  adres  bieżący  jest
               ustawiany na ostatnią linię, dotkniętą przez list-komend.

               Format  listy-komend  jest  taki  sam  jak w `g'.  Samotna nowa
               linia działa jak zerowa lista komend.  Pojedynczy `&'  powtarza
               ostatnią niezerową listę komend.

       H       Włącza  drukowanie  wyjaśnień  błędów.   Domyślnie  nie  są one
               drukowane. Zalecanym  jest,  by  skrypty  rozpoczynały  się  tą
               komendą. Umożliwia to debuggowanie.

       h       Drukuje objaśnienie ostatniego błędu.

       (.)i    Wstawia  tekst  do  bufora  przed  linię  bieżącą.   Tekst jest
               wstawiany w trybie wstawiania. Bieżący adres jest ustawiany  na
               ostatnią wstawioną linię.

       (.,.+1)j
               Łączy adresowane linie. Adresowane linie są kasowane z bufora i
               zamieniane przez pojedynczą linię, zawierającą połączony tekst.
               Adres bieżący jest ustawiany na wynikową linię.

       (.)klc  Zaznacza linię małą literą lc.  Linia może być wtedy adresowana
               jako 'lc.  Znaczenie nie jest czyszczone aż do  skasowania  lub
               zmodyfikowania linii.

       (.,.)l  Drukuje  niedwuznacznie adresowane linie. Jeśli jest wywołany z
               terminala,  ed  pauzuje  na  końcu   każdej   strony,   aż   do
               wprowadzenia  nowej  linii.  Bieżący  adres  jest  ustawiany na
               ostatnią drukowaną linię.

       (.,.)m(.)
               Przenosi linie w buforze. Adresowane linie  są  przenoszone  za
               prawostronny  adres  docelowy, który może być adresem 0 (zero).
               Bieżący adres jest ustawiany na ostatnią przeniesioną linię.

       (.,.)n  Drukuje adresowane linie wraz z  ich  numerami  linii.  Bieżący
               adres jest ustawiany na ostatnią drukowaną linię.

       (.,.)p  Drukuje  adresowane  linie. Jeśli jest wywołany z terminala, ed
               pauzuje na końcu każdej strony aż do wprowadzenia nowej  linii.
               Bieżący adres jest ustawiany na ostatnią drukowaną linię.

       P       Włącza  i  wyłącza  znak  zachęty  komend.   O  ile  nie był on
               określony opcją linii  komend,  -p  napis,  to  jest  domyślnie
               wyłączony.

       q       Kończy pracę z ed.

       Q       Kończy  pracę  bezwarunkowo.  Jest to podobne do komendy q lecz
               niezapisane zmiany są niszczone bez ostrzeżenia.

       ($)r plik
               Odczytuje file za adresowaną linię. Jeśli plik nie jest podany,
               używana  jest  domyślna  nazwa  pliku. Jeśli nie było wcześniej
               domyślnej nazwy pliku, domyślna nazwa pliku jest  ustawiana  na
               plik.    W   przeciwnym  wypadku,  domyślna  nazwa  pliku  jest
               niezmieniana.   Bieżący  adres  jest  ustawiany   na   ostatnią
               odczytaną linię.

       ($)r !komenda
               Wczytuje   za  adresowaną  linią  wyjście  `!komendy',  (zobacz
               !komenda  niżej).   Domyślna  nazwa  pliku  jest  niezmieniona.
               Bieżący adres jest ustawiany na ostatnią wczytaną linię.

       (.,.)s/re/zamiana/
       (.,.)s/re/zamiana/g
       (.,.)s/re/zamiana/n
               Zamienia  tekst w adresowanych liniach, odpowiadający wyrażeniu
               regularnemu re na zamian.   Domyślnie  zamieniane  jest  tylko
               pierwsze dopasowanie linii.  Po podaniu przyrostka `g' (global)
               zamieniane jest każde dopasowanie.   Przyrostek  `n',  gdzie  n
               jest  liczbą  dodatnią,  powoduje  że zmieniane jest tylko n-te
               dopasowanie.   Błędem  jest,   jeśli   nie   dokonano   żadnych
               podstawień  na  żadnej z adresowanych linii. Bieżący adres jest
               ustawiany na ostatnią dotkniętą linię.

               re i zamiana mogą być rozdzielane dowolnym  znakiem  innym  niż
               spacja  i nowa linia (zobacz komendę `s', niżej).  Jeśli jeden,
               lub dwa z ostatnich ograniczników  są  pominięte,  to  ostatnia
               dotknięta  linia  jest  drukowana  tak, jakby podano przyrostek
               `p'.

               Niecytowany  `&'  w  zamianie  jest  zamieniany  na   aktualnie
               dopasowany  tekst.   Sekwencja  `\m',  gdzie  m  jest  liczbą w
               zakresie  [1,9]  jest  zamieniana  m-tą   referencją   wsteczną
               wyrażenia  dopasowanego  tekstu.   Jeśli  zamiana  składa się z
               pojedynczego  `%',  to  używana  jest  zamiana   z   ostatniego
               podstawienia.   W  zamianie  można  osadzać  nowe  linie po ich
               zacytowaniu lewym ukośnikiem (\).

       (.,.)s  Powtarza  ostatnie  podstawienie.   Ta   postać   komendy   `s'
               przyjmuje  przyrostek  licznika  `n',  lub  dowolną  kombinację
               znaków `r', `g', i `p'.  Jeśli podano przyrostek licznika  `n',
               to  zmieniane  jest  tylko  n-te  dopasowanie.   Przyrostek `r'
               powoduje,  że  zamiast  ostatnie  podstawienia,  używane   jest
               wyrażenie regularne ostatniego szukania.  Przyrostek `g' włącza
               przyrostek  global  ostatniego  podstawienia.   Przyrostek  `p'
               włącza  przyrostek  drukowania ostatniego podstawienia. Bieżący
               adres jest ustawiany na ostatnią dotkniętą linię.

       (.,.)t(.)
               Kopiuje adresowane linie za adres, wskazany  z  prawej  strony,
               który  może być adresem 0 (zero).  Bieżący adres jest ustawiany
               na ostatnią kopiowaną linię.

       u       Cofa ostatnią komendę i odtwarza bieżący adres  na  taki,  jaki
               był  przed  nią.   Komendy  globalne  `g', `G', `v', i `V'.  są
               traktowane jako pojedyncze.  `u' jest samo dla siebie inwersją.

       (1,$)v/re/lista-komend
               Aplikuje  list-komend  na  każdej  z  adresowanych  linii, nie
               pasujących do wyrażenia regularnego re.   Jest  to  podobne  do
               komendy `g'.

       (1,$)V/re/
               Edytuje   interaktywnie  adresowane  linie,  nie  odpowiadające
               wyrażeniu regularnemu re.  Jest to podobne do komendy `G'.

       (1,$)w plik
               Zapisuje  adresowane  linie  do  pliku.   Wszelkie   poprzednie
               zawartości  pliku  są  tracone  bez  ostrzeżenia.  Jeśli nie ma
               domyślnej nazwy pliku, to jest  ona  ustawiana  na  plik,  a  w
               przeciwnym  wypadku  nie jest zmieniana. Jeśli nie podano nazwy
               pliku, używana jest nazwa  domyślna.  Bieżący  adres  nie  jest
               zmieniany.

       (1,$)wq plik
               zapisuje  adresowane  linie  do  pliku,  a  następnie  wykonuje
               komendę `q'.

       (1,$)w !komenda
               Zapisuje adresowane linie na  standardowe  wejście  `!komendy',
               (zobacz  !komenda niżej).  Domyślna nazwa pliku i bieżący adres
               nie są zmieniane.

       (1,$)W plik
               Dokleja adresowane linie do końca pliku.  Jest  to  podobne  do
               komendy   `w',   lecz   poprzednia  zawartość  pliku  nie  jest
               niszczona.  Bieżący adres nie jest zmieniany.

       (.)x    Kopiuje (wstawia)  zawartość  bufora  wycinania  za  adresowaną
               linię.  Bieżący  adres  jest  ustawiany  na ostatnią skopiowaną
               linię.

       (.,.)y  Kopiuje (wyszarpuje)  adresowane  linie  do  bufora  wycinania.
               Bufor  wycinania  jest  nadpisywany przez dalsze wywołania `y',
               `s', `j', `d', lub `c'.  Bieżący adres nie jest zmieniany.

       (.+1)zn Przewija n linii naraz,  rozpoczynając  od  adresowanej  linii.
               Jeśli  n  nie  jest  podane, używany jest bieżący rozmiar okna.
               Bieżący adres jest ustawiany na ostatnią drukowaną linię.

       !komenda
               Wykonuje komend poprzez sh(1).  Jeśli pierwszy znak komendy to
               `!',  to jest on zamieniany tekstem poprzedniej `!komendy'.  ed
               nie przetwarza komendy w poszukiwaniu cytatów lewoukośnikowych.
               Jedna  niecytowany  `%'  jest  zamieniany domyślną nazwą pliku.
               Gdy  powłoka  kończy  wykonywanie,  na   standardowym   wyjściu
               drukowany jest `!'.  Bieżąca linia nie jest zmieniana.

       (.,.)#  Rozpoczyna  komentarz;  reszta  linii,  aż  do nowej linii jest
               ignorowana.  Jeśli  po  adresie  linii  następuje  średnik,  to
               bieżący adres jest ustawiany na ten adres. W przeciwnym wypadku
               adres nie jest zmieniany.

       ($)=    Drukuje numer linii adresowanej linii.

       (.+1)newline
               Drukuje adresowaną linię i ustawia bieżący adres na tę linię.

PLIKI

       /tmp/ed.*           Plik buforowy
       ed.hup              Plik, do którego  ed  zapisuje  gdy  terminal  jest
                           zawieszany.

ZOBACZ TAKŻE

       vi(1), sed(1), regex(3), sh(1).

       USD:12-13

       B.  W. Kernighan and P. J. Plauger, Software Tools in Pascal , Addison-
       Wesley, 1981.

OGRANICZENIA

       ed  przetwarza  argumenty  plikowe  z  cytatami  lewoukośnikowymi,  np.
       wszystkie   znaki  poprzedzone  lewym  ukośnikiem  w  nazwie  pliku  są
       interpretowane literalnie.

       Jeśli plik tekstowy nie jest zakończony znakiem nowej linii, ed podczas
       odczytu/zapisu  dopisuje  go.  W przypadku pliku binarnego, ed tego nie
       robi.

DIAGNOSTYKA

       Po błędzie, jeśli wejście  ed'a  następuje  z  pliku  regularnego,  lub
       "dokumentu  tutaj"  (dokumentu  włączonego)  to  kończy;  w  przeciwnym
       wypadku drukuje `?' i powraca do trybu komend.  Wyjaśnienie  ostatniego
       błędu jest drukowane po komendzie `h' (help).

       Próba   zakończenia   ed  lub  edycji  innego  pliku  przed  zapisaniem
       zmodyfikowanego bufora powoduje  błąd.  Jeśli  komenda  jest  wstawiona
       drugi raz, powiedzie się, lecz zmiany bufora będą utracone.

       ed  kończy  działanie  z  zerem,  jeśli  nie  było błędów. W przeciwnym
       wypadku z wartością >0.

                               10 listopada 1994                         ED(1)