ed — перший стандартний текстовий редактор операційної системи UNIX, застосовувався на початку 1970-х. Розширена його версія, відома як ex, послужила основою редактора vi.

Має командно-орієнтований інтерфейс, оскільки створювався в ті часи, коли моніторів не існувало і стандартним засобом введення-виведення був телетайп.

Після появи екранно-орієнтованих редакторів ed став використовуватися в першу чергу для автоматичної обробки за допомогою командної оболонки UNIX, наприклад, для застосування патчів. У такій якості, він є родоначальником сімейства потокових редакторів, таких, як sed.

Могутнім продовженням ідей ed є текстовий редактор sam, який був написаний для Plan 9.

Команди редактора ed використовуються і в інших рядкових редакторах. Наприклад редактор EDLIN, що використався в ранніх версіях MS-DOS, мав аналогічний синтаксис, а вбудовані редактори в багатьох іграх типу MUD (наприклад LPMud і похідні) використовують схожий синтаксис. Проте, в більшості своїй, ці редактори мають значно обмеженішу функціональність.

Команди

ed - текстовий редактор, базовим об'єктом маніпулювання якого є рядки. Підтримує два режими роботи: командний та вводу даних. Робота починається з командного режиму. Для переходу в режим вводу даних використовуються команди: 'a' (append), 'i' (insert), 'c' (change). Ввід даних закінчується крапкою (.) у новому рядку.

Команди маніпулювання з рядками: 'd' (delete) видаляє рядки, 'm' (move) переміщує їх.

Адміністративні команди 'w' (write) запис в файл 'q' (quit) вихід з ed

Взагалі команди мають наступну структуру: [address [,address]]command[parameters]

У редакторі ed команди діють тільки на поточний рядок. Спочатку це перший рядок файла, потім той, що був задіяний останнім під час роботи з попередньою командою.

Адресація рядків

. Поточний рядок $ Останній рядок n n-ний рядок файлу - попередній рядок ^n n попередніх рядків + наступний рядок +n n наступних рядків , усі рядки, еквівалентно до 1,$ ; з поточного рядка до кінця файла /re/ наступний рядок, що підпадає під регулярний вираз ?re? попередній рядок, що підпадає під регулярний вираз

Методи роботи з ed Крім традиційного режиму роботи з ed, можна працювати з редактором також:

За допомогою конвеєра UNIX echo '<ED-COMMANDS>' | ed <FILE> За допомогою перенаправлення ed <FILE> < '<ED-COMMANDS>' За допомогою Here-document ed <FILE> << EOF <ED-COMMANDS> EOF

Приклад роботи Є файл з таким змістом London Paris Prague

Потрібно з даного файлу отримати файл нового змісту Paris Prague Kyiv

Для цього виконуємо в редакторі ed команди: 3a Kyiv . Дана команда додає після третього рядка (3a) рядок зі змістом "Kyiv"

1d w q

Видаляємо перший рядок (1d), записуємо зміни в файл (w) та виходимо з редактора (q).

Посилання Gnu Ed Шпаргалка Ed http://wiki.bash-hackers.org/howto/edit-ed