Вставка новой строки в середине строки в ed (редактор)

Вставка новой строки в середине строки в ed (редактор)

12.08.2017 10:23:57 Просмотров 18 Источник

Предположим, я открыл текстовый файл в 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)

Является ответом!
Jim Stewart

12.08.2017 10:47:26

Вы используете команду sдля выполнения подстановок. Формат такой:

s/pattern/replacement/

Чтобы включить новую строку в замену, экранируйте ее обратной косой чертой, затем нажмите клавишу возврата:

s/one. /one.\
/

Где вы буквально нажимаете return, а не включаете A \rили \n.

https://stackoverflow.com/questions/45654103/inserting-a-newline-in-the-middle-of-a-line-in-ed-editor/45654292#comment78278930_45654292
Спасибо! Да, я знал, что какая-то замена подойдет. Я думал в духе <Кода>.с/\./\.\н/</code> но похоже, что \Н дает Н.
https://stackoverflow.com/questions/45654103/inserting-a-newline-in-the-middle-of-a-line-in-ed-editor/45654292#comment87981112_45654292
К сожалению, это не работает как часть глобальной команды ( g/.../s/pattern/replacement/) - - - это явно запрещено спецификацией. У меня есть несколько очень старых сценариев ed, которые делают это, и которые не работают на современных eds, и я еще не нашел обходного пути для этого.
rafarios

13.08.2017 12:20:01

Используйте следующую команду в ed:

s/\. /\.\
/

Помните, что есть две линии.

Используя 1,$pвы увидите ожидаемый результат.

gnued

01.02.2020 12:49:17

Вы можете сделать

t.
s/text_before/
-s/text_after/

Объяснение:

  1. t.копирует строку, чтобы получить 2 последовательные одинаковые строки, обе содержащие исходный текст.
  2. Измените 2-ю строку, чтобы она содержала только нужный текст после добавленной новой строки.
  3. Сделайте то же самое для 1-й строки, для текста, который вы хотите перед новой строкой.

Примечание: префикс ' - ' означает, что это делается для предыдущей (текущей адресной) строки.

https://stackoverflow.com/questions/45654103/inserting-a-newline-in-the-middle-of-a-line-in-ed-editor/60015751#comment106144273_60015751
Вау - это своего рода" из коробки " подход - спасибо, что поделились этим!
Закрыть X