File: ed.1

package info (click to toggle)
manpages-pl 1%3A0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 15,508 kB
  • sloc: sh: 107; makefile: 59; perl: 32
file content (987 lines) | stat: -rw-r--r-- 23,924 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
.\" 1999 PTM Przemek Borys (total eclipse today! :)
.TH ED 1 "10 listopada 1994"
.SH NAZWA
ed, red \- edytor tekstu
.SH SKŁADNIA
ed [\-] [\-Gs] [\-p \fIłańcuch\fR] [\fIplik\fR]
.LP
red [\-] [\-Gs] [\-p \fIłańcuch\fR] [\fIplik\fR]
.SH OPIS
\fI Uwaga! To tłumaczenie może być nieaktualne!\fP
.PP
.B ed
jest zorientowanym liniowo edytorem tekstu.
Jest o używany do tworzenia, wyświetlania, modyfikowania i innych działań na
plikach tekstowych.
.B red
to
.BR 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
.IR pliku ,
jego kopia jest odczytywana do bufora edytora.
Wszelkie zmiany robione są na tej kopii, nie na
.I pliku
jako takim.
Podczas kończenia pracy z
.BR ed ,
wszelkie zmiany, których nie zachowano komendą
.I `w'
są tracone.

Edycja jest dokonywana w dwóch różnych trybach:
.I komend
i
.IR wprowadzania .
Po uruchomieniu,
.B 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:
.sp
.RS
,s/\fIold\fR/\fInew\fR/g
.RE
.sp
co zamienia wszystkie pojawienia się napisu
.I old
na
.IR new .

Po podaniu komendy wprowadzania, takiej jak
.I `a'
(append--dopisz),
.I `i'
(insert--wstaw) lub
.I `c'
(change-zmień),
.B 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
.IR "nowej linii" .
Tryb wprowadzania jest przerywany wprowadzeniem pojedynczej kropki w linii.

Wszystkie komendy
.B ed
operują na całych liniach, lub zakresach linii; np.
komenda
.I `d'
kasuje (delete) linie; komenda
.I `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
.I `s'
tyczy się do całych linii naraz.

W ogólności, komendy
.B 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ę:
.sp
.RS
.I [adres [,adres]]komenda[parametry]
.RE
.sp
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.

.SS OPCJE
.TP 8
\-G
Wymusza kompatybilność wsteczną. Dotyczy komend
.IR `G' ,
.IR `V' ,
.IR `f' ,
.IR `l' ,
.IR `m' ,
.IR `t' ,
and
.IR `!!' .
.TP 8
\-s
Powstrzymuje diagnostykę. Powinno być używane jeśli standardowe wejście 
.BR ed 'a
jest ze skryptu.

.TP 8
.RI \-p \ łańcuch
Podaje znak zachęty komend. Może to być włączane, lub wyłączane komendą
.IR `P' .

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

.SS ADRESOWANIE LINIOWE
Adres reprezentuje numer linii w buforze.
.B ed
obsługuje
.IR "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.
.IR + ,
.I -
i
.IR ^ )
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
.I 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
.IR n- krotną
parę adresów, gdzie
.I 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.

.TP 8
\&.
Adres bieżącej linii w buforze.

.TP 8
$
Adres ostatniej linii w buforze.

.TP 8
n
.IR n ta
linia w buforze, 
gdzie
.I n
jest liczbą w zakresie
.I [0,$].

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

.HP
-\fIn\fR
.TP 8
^\fIn\fR
.IR n ta
linia poprzednia, gdzie
.I n
jest liczbą nieujemną.

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

.HP
+\fIn\fR
.TP 8
biała spacja \fIn\fR
.IR n ta
następna linia, gdzie
.I n
jest liczbą nieujemną.
.IR "Biała spacja" ,
za którą następuje liczba
.I n
jest interpretowana jako
.IR +n .

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

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

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

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

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

.SS WYRAŻENIA REGULARNE
Wyrażenia regularne są wzorcami, używanymi w wybieraniu tekstu.
Na przykład, komenda
.B ed
.sp
.RS
g/\fInapis\fR/
.RE
.sp
drukuje wszystkie linie, zawierające
.IR napis .
Wyrażenia regularne są używane też przez komendę
.IR `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:

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

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

.TP 8
\fR.\fR
Oznacza pojedynczy znak. (dowolny)

.TP 8
.I [klasa-znaków]
Oznacza pojedynczy znak z
.IR "klasy znaków" .
Aby do
.IR "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
.I klasie znaków
można używać następujących literałów:
.sp
.nf
\ \ [:alnum:]\ \ [:cntrl:]\ \ [:lower:]\ \ [:space:]
.PD 0
\ \ [:alpha:]\ \ [:digit:]\ \ [:print:]\ \ [:upper:]
.PD 0
\ \ [:blank:]\ \ [:graph:]\ \ [:punct:]\ \ [:xdigit:]
.fi
.sp
Gdy znak `-' pojawia się jako pierwszy lub ostatni znak
.IR "klasy-znaków" ,
to dopasowuje sam siebie.
Wszystkie inne znaki
.I "klasy-znaków"
odpowiadają same sobie.
.sp
Wzorce w
.I "klasie-znaków"
postaci
.sp
\ \ [.\fIcol-elm\fR.] lub
.PD 0
\ \ [=\fIcol-elm\fR=]
.sp
gdzie
.I col-elm
jest
.I elementem porównawczym
są interpretowane według
.IR locale (5)
(nie jest to obecnie obsługiwane).
Zobacz
.IR regex (3)
dla objaśnień tych konstrukcji. 

.TP 8
[^\fIklasa-znaków\fR]
Odpowiada dowolnemu pojedynczemu znakowi, innemu niż nowa linia, który nie
jest w
.IR klasie-znaków .
.IR klasa-znaków
jest definiowana podobnie jak wyżej.

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

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

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

.TP 8
*
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'.

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

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


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

.HP
\fR\e`\fR
.TP 8
\fR\e'\fR
Bezwarunkowo dopasowuje początek (\e`) lub koniec (\e') linii.

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

.TP 8
\fR\e+\fR
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 \e+ pojawi się na początku linii, to
odpowiada literalnemu `+'.


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

.TP 8
\fR\eB\fR
Odpowiada (łańcuchowi zerowemu) w słowie.

.TP 8
\fR\ew\fR
Odpowiada dowolnemu znakowi w słowie.

.TP 8
\fR\eW\fR
Odpowiada dowolnemu znakowi nie będącemu w słowie.

.SS KOMENDY
Wszystkie komendy
.B 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 (\e).

Ogólnie, na linię dozwolona jest najwięcej jedna komenda.
Jednak większość komend przyjmuje przyrostek drukowania, który może być
dowolnym z
.I `p'
(drukuj-print),
.I `l'
(listuj-list) ,
lub
.I `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.

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

.TP 8
(.)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ę.

.TP 8
(.,.)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ę.

.TP 8
(.,.)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.

.TP 8
.RI e \ plik
Edytuje
.IR plik ,
i ustawia domyślną nazwę pliku.
Jeśli
.I 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ę.

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

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

.TP 8
.RI f \ plik
Ustawia domyślną nazwę pliku na
.IR plik .
Jeśli
.I plik
nie jest podany, drukowana jest niecytowana domyślna nazwa pliku.

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

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

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

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

.TP 8
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.

.TP 8
h
Drukuje objaśnienie ostatniego błędu.

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

.TP 8
(.,.+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ę.

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

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

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

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

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

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

.TP 8
q
Kończy pracę z ed.

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

.TP 8
.RI ($)r \ plik
Odczytuje
.I file
za adresowaną linię. Jeśli
.I 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
.IR plik .
W przeciwnym wypadku, domyślna nazwa pliku jest niezmieniana.
Bieżący adres jest ustawiany na ostatnią odczytaną linię.

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

.HP
.RI (.,.)s /re/zamiana/
.HP
.RI (.,.)s  /re/zamiana/\fRg\fR
.HP
.RI (.,.)s  /re/zamiana/n
.br
Zamienia tekst w adresowanych liniach, odpowiadający wyrażeniu regularnemu
.I re
na
.IR zamianę .
Domyślnie zamieniane jest tylko pierwsze dopasowanie linii.
Po podaniu przyrostka
.I `g'
(global) zamieniane jest każde dopasowanie.
Przyrostek
.IR `n' ,
gdzie
.I n
jest liczbą dodatnią, powoduje że zmieniane jest tylko
.IR 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ę.

.I re
i
.I zamiana
mogą być rozdzielane dowolnym znakiem innym niż spacja i nowa linia
(zobacz komendę
.IR `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
.IR `p' .

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

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

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

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

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

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

.TP 8
.RI (1,$)w \ plik
Zapisuje adresowane linie do
.IR pliku .
Wszelkie poprzednie zawartości
.I pliku
są tracone bez ostrzeżenia.
Jeśli nie ma domyślnej nazwy pliku, to jest ona ustawiana na
.IR 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.

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

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

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

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

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

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

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

.TP 8
(.,.)#
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.

.TP 8
($)=
Drukuje numer linii adresowanej linii.

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

.SH PLIKI
.TP 20
/tmp/ed.*
Plik buforowy
.PD 0
.TP 20
ed.hup
Plik, do którego
.B ed
zapisuje gdy terminal jest zawieszany.

.SH ZOBACZ TAKŻE

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

USD:12-13

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

.SH OGRANICZENIA
.B ed
przetwarza argumenty
.I 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,
.B ed
podczas odczytu/zapisu dopisuje go. W przypadku pliku binarnego,
.B ed
tego nie robi.

.\" per line overhead: 4 ints

.SH DIAGNOSTYKA
Po błędzie, jeśli wejście
.BR 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
.I `h'
(help).

Próba zakończenia
.B 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.

.B ed
kończy działanie z zerem, jeśli nie było błędów. W przeciwnym wypadku z
wartością >0.
.SH "INFORMACJE O TŁUMACZENIU"
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i 
\fImoże nie być aktualne\fR. 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:
.IP
man \-\-locale=C 1 ed
.PP
Prosimy o pomoc w aktualizacji stron man \- więcej informacji można znaleźć pod
adresem http://sourceforge.net/projects/manpages\-pl/.