ed (editor)

ed
Ed lines.jpg
VývojářBellovy laboratoře
Operační systémUN*X
Unix
Typ softwarustandardní UNIXová utilita a řádkový editor
Některá data mohou pocházet z datové položky.

ed je standardní unixový interaktivní řádkový textový editor a je prvním programem, v němž byly implementovány regulární výrazy. Jeho původním autorem je Ken Thompson, který při svém návrhu vycházel ze staršího editoru QED. ed sám se stal inspirací pro mnoho pozdějších unixových programů; jeho příkazy převzal editor vi (později i vim) a vychází z něj i neinteraktivní programy sedgrep.

Podobně jako většina programů z té doby (namátkou třeba kalkulátor dc), vyznačuje se ed extrémní stručností. Například dojde-li k chybnému zadání nebo při ujištění, že chce uživatel program ukončit bez uložení, vypíše ed prosté „?“. Nezmiňuje název editovaného souboru, číslo řádku, ani editovaný řádek samotný, není-li k tomu explicitně vyzván. Všechny příkazy jsou jednoznakové.

Jelikož je ed standardní součástí unixových a linuxových distribucí, ovládají lidé, kteří pracují s různými verzemi Unixu, alespoň základní příkazy, protože v některých situacích může být jediným dostupným editorem. Krom interaktivní editace lze ed využít i v shellových skriptech.

Ukázka práce s editorem

Práci s editorem ilustruje následující příklad (výstup editoru ed je vyznačen kurzívou):

a
ed je standardni unixovy textovy editor.
Tohle je radek cislo dva.
.
2i

.
1,$l
ed je standardni unixovy textovy editor.$
$
Tohle je radek cislo dva.$
3s/dva/tri/
1,$l
ed je standardni unixovy textovy editor.$
$
Tohle je radek cislo tri.$
w text.txt
68
q

Výsledkem je prostý textový soubor pojmenovaný „text.txt“ s následujícím obsahem:

ed je standardni unixovy textovy editor.

Tohle je radek cislo tri.

Začínáme s prázdným souborem. Příkaz a slouží k přidání textu; tím se přepneme do vkládacího režimu, můžeme zapisovat normální text. Vkládací režim ukončíme tečkou na samostatném řádku. Námi zadané dva řádky jsou uloženy v souborovém bufferu. Příkaz 2i nás přepne do vkládacího režimu a vloží zadaný text (jímž je v našem případě prázdný řádek) před řádek číslo 2. Všem příkazům může předcházet číslo řádku.

l v zápisu 1,$l znamená příkaz pro výpis, tentokrát ale příkazu předchází rozsah řádků, kde $ označuje poslední řádek, takže se vypisuje od prvního do posledního řádku. Dojde k vypsání obsahu našeho souborového bufferu, přičemž konce řádků jsou označeny znakem $, aby byly jasně vidět tzv. bílé znaky.

Pro změnu textu dve na tri použijeme příkaz pro substituci, 3s/dva/tri/. Poté opět vypíšeme všechny řádky pomocí 1,$l a přesvědčíme se, že je vše v pořádku.

Příkaz w text.txt uloží obsah bufferu do souboru nazvaného „text.txt“. Číslem 68 ed sděluje počet znaků, které byly uloženy. Příkaz q ukončí práci s editorem.

Externí odkazy

Média použitá na této stránce

Ed lines.jpg
Autor: User:Charlie42, Licence: CC BY-SA 3.0
Pseudo-commands to illustrate how line-by-line text editing works.