Az ed szövegszerkesztő parancsai

e file

(edit) Az argumentumában megnevezett állomány betöltése a bufferba.

r file

(read) Az argumentumában megnevezett állomány betöltése a buffer végére.

E file

(edit) Editálás ellenőrzés nélkül.

w file

(write) A buffer sorainak elmentése.

W file

(write) A buffer hozzáírása a megadott állományhoz.

q

(quit) Kilépés, de csak akkor, ha a buffer aktuális tartalmát elmentette. Ellenkező esetben figyelmeztetést kapunk, egy kérdőjelet.

Q

(quit) Kilépés ellenőrzés nélkül.

nnn

szövegminta

'marker

 

 

Adott sor kiírása a képernyőre, egyben kurrens sorrá tétele. Nnn egy abszolút vagy relatív sorszám lehet, szövegminta egy reguláris kifejezés, marker pedig egy kmarker paranccsal előzőleg beállított szövegjelző (marker).

+

A kurzor előreléptetése egy sorral a bufferban.

-

A kurzor hátraléptetése egy sorral a bufferban.

=

Sorszám kiíratás

p

(print) Kiíratás a képernyőre

n

(number) Kiíratás a képernyőre a sorok sorszámaival együtt.

f

(file) Az editálás alatt lévő állomány nevének kiíratása.

a

text

 

(append) Hozzáírás a kurrens sor után. Új állomány szerkesztésénél az a parancs kiadásával kell kezdeni a munkát.

i

(insert) Beszúrás a kurrens sor elé.

d

(delete) Sortörlés.

j

(join) A megnevezett sorok összekapcsolása a felsorolásuk sorrendjében. Nem szükségszerű, hogy egymás utáni sorokat kapcsoljunk össze, de mindig csak az alacsonyabb sorszámú sorhoz lehet a magasabb sorszámút kapcsolni. Az új sor az alacsonyabb sorszámú sorban lesz.

s /m1/m2/

(substitute) A parancsban megadott két minta felcserélése.

u

(undo) Az utolsó változtatás előtti állapot visszaállítása.

c

text

(change) Beszúrás módba kerül és a jelzett sorokat kicseréli arra a szövegre, amit a parancs utáni sorokba beírunk. Ha több új sor van, mint amit változtatásra kijelöltünk, akkor a többlet beszúródik a szövegbe. Ha a kijelöltnél kevesebb új sort írunk, a maradék sorok érintetlenek maradnak. A cserére leírt sorok után új sorba írt soreleji pont visszavisz parancs módba.

Gedcmd

(global) Az edcmd parancs végrehajtása a buffer minden illeszkedő sorában.

A felsorolt parancsokkal már szinte mindent meg tudunk tenni, amit az ed szerkesztővel lehet, a további parancsokat inkább csak a gyakorlott felhasználók használják.

 

l

(list) Kiíratás a képernyőre a vezérlőkarakterekkel.

Mpos

(move) A kijelölt sor(ok)nak a pos argumentummal megadott sor után mozgatása (pos az ed szabályainak megfelelően mind sorszám, mind minta, mind marker lehet).

tpos

A kijelölt sor(ok)nak a pos argumentummal megadott sor után másolása (pos az ed szabályainak megfelelően mind sorszám, mind minta, mind marker lehet).

kc

Marker elhelyezése a kijelölt sorba. A marker neve az argumentumban írt betű lesz, amire a későbbiekben a 'c, azaz a betűt egy aposztroffal megelőzve lehet hivatkozni.

!cmd

Argumentuma egy cmd shell parancs, ami végrehajtódik, majd visszatérünk az ed parancsállapotába.

A következő két parancsot inkább parancsmódosítóknak lehetne nevezni. Helyük a parancssor végén, a parancsargumentum után van.

v

a parancs végrehajtása minden olyan sorban, amit a sorkiválasztó minta nem jelöl ki.

g

a parancs végrehajtása a soron belül minden olyan helyen, ahol lehet.

Néhány példa az ed szövegszerkesztő használatára

Első példánkban azt mutatjuk be, hogy hogyan lehet markerrel jelzett sorokon operálni. Legyen az a feladatunk, hogy egy fájlban az első lepke szót tartalmazó sor elé beszúrjuk a szövegben található összes pillango szót tartalmazó sorokat. A k parancs segítségével a példában a h betűvel jelöljük meg a lepke mintát tartalmazó sort, majd az egész bufferen végrehajtatjuk az áthelyezést. (A markeres megadásnak az az előnye, hogy ha maga a lepke szó megváltozik a referencia sorunkban, a marker őrzi pozícióját, és nyugodtan hivatkozhatunk rá parancsainkkal; hasonlóképpen, ha a markerral jelölt sor pozíciója változik a fájlban (akár mert eléje szúrunk be valamit, akár mert őt magát mozgatjuk), a marker "foggal-körömmel" ragaszkodni fog ahhoz a sorhoz, amihez először hozzárendeltük.)

/lepke/kh

g/pillango/m'h-1

Következő példánkban Romhányi József legendás tevéjének hátán tevegelünk be az ed szépségeinek birodalmába... A teve nevű állományunkban az ismert vers egy részlete szerepel, csak kissé hibásan:

 

$ cat teve

Monotn

uget a suppedo homokon

a sivatag lova

oda

$

A javítás során megnézzük, hogy hány soros a versrészlet, majd először a hiányzó utolsó előtti sort ('a tetova teve') pótoljuk az a parancs segítségével. Mivel az első és utolsó sor is hibás, azokat a c paranccsal cseréljük helyesre. Végül az elsőtől az utolsó sorig kiíratjuk a művet a képernyőre, majd el is mentjük a fájlt.

 

$ ed teve

39

$=

4

$-1a

a tetova teve

.

$c

tova

.

1

Monotn

1c

Monoton

.

1,$p

Monoton

uget a suppedo homokon

a sivatag lova

a tetova teve

tova

w

65

q

$

A számítástechnikához közelebb álló a következő példa. A cskel.c állomány az alábbi:

 

$ cat cskel

}

if !=

than

else

while !=

{

$

A hibákat újra az ed segítségével javítjuk. A javító parancsokat egy javit nevű állományba tesszük, hátha még máskor is hasznát vesszük. A javít a munkáját kommentekkel kíséri.

 

$ cat javit

!echo Kezdodik a javitas

1t$

$-1m1

1d

!echo Mar megcsereltem a sorokat. Betucsere jon.

/^if/ s/!/=/

/than/ s/a/e/

1

g/^[^iwf]/ s/^\( \)/ \1/g

1

g/^[ ]*[^{}]$/ s/\([ ]*\)//

1

g/^ /s/\([^ ]\)/ \1/g

1,$p

w cskelj.c

q

$

$ ed cskel.c <javit

29

Kezdodik a javitas

Mar megcsereltem a sorokat. Betucsere jon.

{

if ==

t h e n

e l s e

while !=

}

49

$

A javítófájlban először megcseréltük az első és utolsó sort, majd az if-fel kezdődő és a than-t tartalmazó sorban hajtottunk végre karaktercserét. Ezután a buffer elejére mentünk, és minden nem 'i', 'w' vagy 'f' betűvel kezdődő sor elejére két szóközt tettünk: ez az első g paranccsal kezdődő sor. Utána kiirtottuk a kapcsos zárójelek elől a szóközöket, majd a következő lépésben minden szóközzel kezdődő sorban, minden nem szóköz karakter után egy szóközt szúrtunk be. Vegyük észre a különbséget. A parancs sor elején lévő g (global) parancs a buffer összes sorára kiterjeszti a sorfelismerő mintával való sorkeresést, míg a parancssor végén lévő parancsmódosító g az éppen vizsgált sor egészére terjeszti ki a parancs végrehajtását. Végül kiírattuk majd eltettük egy új néven az állományt.

 

Tartalomjegyzék