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, можна працювати з редактором також:

echo '<ED-COMMANDS>' | ed <FILE>
ed <FILE> < '<ED-COMMANDS>'
ed <FILE> << EOF
<ED-COMMANDS>
EOF

Приклад роботи ред.

Є файл з таким змістом

London
Paris
Prague

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

Paris
Prague
Kyiv

Для цього виконуємо в редакторі ed команди:

3a
Kyiv
.

Дана команда додає після третього рядка (3a) рядок зі змістом "Kyiv"

1d
w
q

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

Посилання ред.