У меня есть список изменений, который выглядит так:

версия 1.90
(1 новая строка)
Дата выхода 27 апреля 2014 г.
(2 последовательных перевода строки)

Добавлена функция x ---> (первая запись для 1.90)
(1 новая строка между каждой записью)
Исправлена ошибка у

Удален элемент z

Обновлен файл z ----> (последняя запись для 1.90)
(3 последовательных перевода строки)

версия 1.89

И я хочу:

  1. Чтобы объединить каждые две такие строки:

    версия 1.90

    Дата выхода 27 апреля 2014 г.

    в:

    версия 1.90 (27 апреля 2014 г.)

    а также

  2. удалить следующие новые строки:
    • все новые строки между записями,
      т.е. все переводы строк между 2 последовательными переводами строк и 3 последовательными строками
    • 1 из 2 новых строк после объединенного «версия 1.90 (27 апреля 2014 г.)»

Текст слишком длинный, чтобы преобразовать его вручную.
Спасибо.

1 ответ1

2

Если я вас хорошо понимаю

g/^$/d
%s/\v^(version.*)\n(.*)/\r\1 (\2)\r

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .