Чтобы манипулировать не только целыми фрагментами, выбираемыми регулярными выражениями, но и их соответствующими частями, используйте \(...\) появляется в регулярном выражении, то часть соответствующего ей фрагмента доступна как \1. Возможно до девяти помеченных выражений, на которые ссылаются с помощью \1, \2 и т.д.
s/\(...\)\(.*\)/\2\1/ | Поместить 3 первых символа в конец |
/\(..*\)\1/ | Найти строки, содержащие повторяющиеся смежные цепочки символов |
Командам r и w (читать и писать) могут предшествовать номера строк:
| Читать file; добавить его после строки |
| Писать строки file; положение текущей строки не изменяется |
| Добавить строки file; положение текущей строки не изменяется |
По умолчанию диапазон для w и W (команда W приведена ниже в табл. П.1.2) — это целый файл. Значение r равно $, что представляется не очень удачным. Будьте внимательны.
Редактор ed запоминает первое использованное имя файла из командной строки или из команд r, w. Команда f (файл) печатает или заменяет имя запомненного файла:
f | Печатать имя запомненного файла |
f file | Установить запомненное имя на 'file' |
Команда e (редактировать) вновь вызывает ed с запомненным или новым файлом:
e | Начать редактировать запомненный файл |
e file | Начать редактировать 'file' |
Команда е защищена тем же способом, что и q: если вы не записали измененную версию, первая команда е выдает сообщение об ошибке; е вновь инициализирует редактор независимо от внесения изменений. В некоторых системах ed связан с е, так что одна и та же команда (е filename) может использоваться внутри и вне редактора.
Файлы могут быть зашифрованы по записи и дешифрованы при чтении с помощью команды x; пароль будет запрошен. Шифрование происходит тем же способом, что и в crypt(1). В некоторых системах команда x заменена на X (прописную букву) во избежание случайностей.
В табл. П.1.2 перечислены команды редактора, а в табл. П.1.3 допустимые номера строк. Каждой команде предшествует нуль, один или два номера строк, указывающие число используемых строк, если их нет, принимается соглашение по умолчанию. За большинством команд может следовать буква p для вывода последней обработанной строки или 1 для формата списка. Текущей обычно становится последняя обработанная строка; настройка не меняется командами f, k, w, x, =, !.