88.1. ed

ed je jedním z prapůvodních editorů jenž se objevil v prvopočátcích UNIXu. Budu-li mít někdy čas a dobrou vůli, podívám se do historických záznamů a popíši editory a jejich vývoj v dávných dobách. Zde uvádím ed zejména z nostalgických důvodů, ale taky proto, že v případě omezených zdrojů, zejména rychlosti terminálu nám může být velmi užitečný. Všechny další editory které zmíním jsou totiž editory celostránkové. Z toho mimo jiné vyplývá že při spuštění editoru a natažení soubor zobrazí tento na celé stránce terminálu, což v případě velmi omezené rychlosti terminálu trvá až nepříjemně dlouho. Ano je to vyjíměčný případ, ale právě pro tento případ je ed vhodný. Přenáší totiž, jak dále uvidíme, jen opravdu nezbytné minimum znaků. Důvod proč je ed takto nenáročný tkví právě v historii. V té době:

Značně nízké nároky editoru ed na přenosovou rychlost a vlastnosti terminálu nám proto mohu pomoci vyřešit mezní situace s omezenými zdroji.

Instalace je jednoduchá, nic neinstalujeme. ed patří k základní vybavě všech UNIX-like systémů se kterými jsem se potkal.

$ ed novy-soubor

Struktura příkazu vypadá následovně:

[adresa [,adresa]]příkaz[parametry]

První dva nepovinné parametry jsou počáteční a koncová adresa které se oprace týká. Adresovány jsou celé řádky. Poté následuje příkaz za kterým mohou být uvedeny parametry příkazu, ty se liší příkaz od příkazu.

Tabulka 88.1. Přehled adresních příkazů

adresapopis
.aktuální řádek
$poslední řádek v bufferu
číslo nn-tý řádek v bufferu, n musí být v rozdahu [0,$]
- nebo ^předchozí řádek, je stejné jako -1 a může se opakovat čímž se kumuluje
-n nebo ^nn-tý předchozí řádek
+další řádek, je stejné jako +1
+n nebo _nn-tý předchozí řádek
, nebo %celý buffer, je to stejné jako 1,$
;od aktuánlího řádku do konce, stejné jako .,$
/re/Další řádek obsahující regulární výraz re. Pokud vyhledávání dojde konce bufferu, začíná od začátku. // opakuje poslední hledání.
?re?Předchozí řádek obsahující regulární výraz re. Je stejné jako /re/ ale hledá opačným směrem. ?? opakuje poslední hledání.
'xŘádek dříve označené označený malým pismenem. x je malé písmeno.

Tabulka 88.2. Přehled příkazů

příkaznázevpopis
aappendnásledující text/řádky budou vloženy za řádek specifikovaný v příkaze a
cchnagenahradí/přepíše řádky uvedené v příkazu c následujícím textem
ddeleteřádky specifiované v příkazu d jsou smazány/odstraněny
e fileedit 
e !commandedit 
Eedit 
f file  
g/re/command-list  
G/re/  
H zapíná/vypíná popis chyb
h vytiskne popis poslední chyby
iinsertnásledující text/řádky budou vloženy před řádek specifikovaný v příkaze i
j spojí řádky do jednoho
klc označí řádek malým písmenem lc
llist 
mmove 
qquitukončení práce editoru
ssubstitutepříkaz provede vyhledání řetězce a nahrazení jiným řetězcem
wwritezapíše editovaný soubor na disk
P zapíná a vypíná command prompt
  

Další příkazy: G, V, f, l, t, !!

FIXME: následují nezpracované texty.

radek@yoda:~$ which ed
/bin/ed
radek@yoda:~$ dpkg -S ed

,s/old/new/g