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

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

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