Вопрос более или менее говорит сам за себя. Я знаю, что /^$/d
будут удалены все пустые строки, но я не вижу, как сказать «заменить две или более пустых строк одной пустой строкой»
Любые идеи?
vim
sed
regular-expression
Эндрю Болстер
источник
источник
-s
вариант cat - просто историческая справка, его нет в POSIX, но, кажется, он доступен в BSD и GNU cat.:%!cat -s
. Узнайте что-нибудь новое каждый день!%s!\n\n\n\+!\r\r!g
Используйте
\n
для обозначения новой строки в шаблоне поиска. Используйте Ctrl+ Mв тексте замены или обратной ссылке. Смотрите:help pattern
и:help sub-replace-special
(ссылка с:help :s
).источник
\n
в тексте замены не работает.Если в Vim, просто сделайте это:
источник
man
страницы.Использование Perl:
-00
опция командной строки включает режим абзаца абзаца, что означает, что Perl читает текст абзац за абзацем, а не построчно.источник
С помощью sed (GNU sed) 4.2.2:
источник
Я знаю, что это глупый код, но я хотел решить эту проблему менее чем за 10 минут, и это сработало
источник
uniq
удаляет соседние равные линии Что не то, что хочет ОП.