Замена нескольких пустых строк одной пустой строкой в ​​vim / sed

Вопрос более или менее говорит обо всем. Я знаю, что /^$/d удалит все пустые строки, но я не вижу, как сказать «заменить две или более пустых строк одной пустой строкой»,

Есть идеи?

5 Solutions collect form web for “Замена нескольких пустых строк одной пустой строкой в ​​vim / sed”

Если вы не стреляете в vim или sed для какого-то другого использования, у кота действительно есть простой встроенный способ свернуть несколько пустых строк, просто используйте cat -s .

Если вы уже были в vim и хотели остаться там, вы могли бы сделать это с помощью внутреннего поиска и замены, выпустив :%s!\n\n\n\+!^M^M!g (The ^ M – это визуальное представление новой строки, вы можете ввести его, нажав Ctrl + v Enter ), или сохраните себя, набрав, просто обстреливая cat :%!cat -s .

Используйте \n чтобы указать новую строку в шаблоне поиска. Используйте Ctrl + M в заменяющем тексте или обратную ссылку. См :help pattern и :help sub-replace-special (связанный с :help :s ).

 %s/\(\n\n\)\n\+/\1/ 

Если в Vim просто сделайте это:

 :%!cat -s 

Использование Perl:

 perl -00 -pe '' 

-00 командной строки -00 включает режим абзаца slurp on, что означает, что Perl читает текст по частям, а не по строкам.

Я знаю, что это глупый код, но я решил решить эту проблему менее чем за 10 минут, и это сработало

 for file in /directory/* do originalname=$file us='_' tempname=$file$us echo $originalname mv $originalname $tempname uniq $tempname $originalname rm $tempname done 
  • Цветовая схема Vim не применяется
  • Автозаполнение OpenLayers с Tern
  • ошибка в редактировании vim, вызванная вкладкой или диакритикой?
  • NERDTree не создает окно при открытии, когда файл не сохраняется
  • Vim colorscheme background, не заполняющий терминал
  • Что означает ... ... означает в vim и как заменить для него единый пробел?
  • Предлагаемая настройка для сверхлегкой текстовой среды программирования в Linux
  • Могу ли я повторно войти в отключенную сессию?
  • Vi editor: Какой самый быстрый способ удалить несколько строк в файле?
  • vim cut & paste не работает в Stretch / Debian 9
  • Поиск и замена следующих n слов в vi
  • В чем разница между .exrc и .vimrc?
  • Linux и Unix - лучшая ОС в мире.