Вставка новой строки в середине строки в ed (редактор)
Предположим, я открыл текстовый файл в ed, и текущая строка выглядит следующим образом:
This is sentence one. Here starts another one.
Теперь я хочу поставить новую строку после one.
, так что новое предложение, начинающееся с Here starts
, занимает следующую строку.
Как мне это сделать в ed?
У вопроса есть решение - Посмотреть?
Ответы - Вставка новой строки в середине строки в ed (редактор) / Inserting a newline in the middle of a line in ed (editor)
Является ответом!

12.08.2017 10:47:26
Вы используете команду s
для выполнения подстановок. Формат такой:
s/pattern/replacement/
Чтобы включить новую строку в замену, экранируйте ее обратной косой чертой, затем нажмите клавишу возврата:
s/one. /one.\
/
Где вы буквально нажимаете return, а не включаете A \r
или \n
.

Спасибо! Да, я знал, что какая-то замена подойдет. Я думал в духе <Кода>.с/\./\.\н/</code> но похоже, что \Н дает Н.

К сожалению, это не работает как часть глобальной команды (
g/.../s/pattern/replacement/
) - - - это явно запрещено спецификацией. У меня есть несколько очень старых сценариев ed, которые делают это, и которые не работают на современных eds, и я еще не нашел обходного пути для этого.


01.02.2020 12:49:17
Вы можете сделать
t.
s/text_before/
-s/text_after/
Объяснение:
t.
копирует строку, чтобы получить 2 последовательные одинаковые строки, обе содержащие исходный текст.- Измените 2-ю строку, чтобы она содержала только нужный текст после добавленной новой строки.
- Сделайте то же самое для 1-й строки, для текста, который вы хотите перед новой строкой.
Примечание: префикс ' - ' означает, что это делается для предыдущей (текущей адресной) строки.

Вау - это своего рода" из коробки " подход - спасибо, что поделились этим!
Помочь в развитии проекта: