ed

Autres langues

Langue: pl

Autres versions - même langue

Version: 10 Listopad 1994 (openSuse - 09/10/07)

Section: 1 (Commandes utilisateur)

NAZWA

ed, red - edytor tekstu

SK£ADNIA

ed [-] [-Gs] [-p ³añcuch] [plik]

red [-] [-Gs] [-p ³añcuch] [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 ³añcuch
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 bie¿±cy, 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±. Bia³a 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-znaków]
Oznacza pojedynczy znak z klasy znaków. Aby do klasy znaków 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 znaków 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-znaków, to dopasowuje sam siebie. Wszystkie inne znaki klasy-znaków odpowiadaj± same sobie.

Wzorce w klasie-znaków postaci

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

gdzie col-elm jest elementem porównawczym s± interpretowane wed³ug locale(5) (nie jest to obecnie obs³ugiwane). Zobacz regex(3) dla obja¶nieñ tych konstrukcji.

[^klasa-znaków]
Odpowiada dowolnemu pojedynczemu znakowi, innemu ni¿ nowa linia, który nie jest w klasie-znaków. klasa-znaków 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 dopsaowaniu 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 (\>) s³owa, 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 li¶cie 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 li¶cie-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.