ed
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).