table of contents
other sections
ED(1) | General Commands Manual | ED(1) |
NAZWA¶
ed, red - edytor tekstuSKŁADNIA¶
ed [-] [-Gs] [-p łańcuch] [plik] red [-] [-Gs] [-p łańcuch] [plik]OPIS¶
Uwaga! To tłumaczenie może być nieaktualne! 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.,s/old/new/g
[adres
[,adres]]komenda[parametry]
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 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 edg/napis/
- 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:]
- [^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 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 (\>) słowa, czyli w
ASCII maksymalnego łańcucha znaków alfanumerycznych,
łącznie z podkreśleniem (_).
\`
- \'
- 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 (\).- (.)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.
- (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.
- 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).OGRANICZENIA¶
ed przetwarza argumenty plikowe z cytatami lewoukośnikowymi, np. wszystkie znaki poprzedzone lewym ukośnikiem w nazwie pliku są interpretowane literalnie.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).INFORMACJE O TŁUMACZENIU¶
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:- man --locale=C 1 ed
10 listopada 1994 |