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ů
adresa | popis |
---|---|
. | aktuální řádek |
$ | poslední řádek v bufferu |
číslo n | n-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 ^n | n-tý předchozí řádek |
+ | další řádek, je stejné jako +1 |
+n nebo _n | n-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říkaz | název | popis |
---|---|---|
a | append | následující text/řádky budou vloženy za řádek specifikovaný v příkaze a |
c | chnage | nahradí/přepíše řádky uvedené v příkazu c následujícím textem |
d | delete | řádky specifiované v příkazu d jsou smazány/odstraněny |
e file | edit | |
e !command | edit | |
E | edit | |
f file | ||
g/re/command-list | ||
G/re/ | ||
H | zapíná/vypíná popis chyb | |
h | vytiskne popis poslední chyby | |
i | insert | ná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 | |
l | list | |
m | move | |
q | quit | ukončení práce editoru |
s | substitute | příkaz provede vyhledání řetězce a nahrazení jiným řetězcem |
w | write | zapíš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