Как заменить несколько пустых строк одной пустой строкой в ​​bash? - PullRequest
33 голосов
/ 28 мая 2009

У меня есть файл, который содержит:

something



something else

something else again

Мне нужна команда bash, sed / grep w.e, которая выдаст следующий вывод

something

something else

something else again

Другими словами, мне нужно заменить несколько пустых строк одной пустой строкой. grep / sed основаны на строках. Я никогда не находил решение BASH, которое бы работало с многострочными шаблонами регулярных выражений.

Ответы [ 13 ]

0 голосов
/ 31 мая 2009

Конвейерная передача в | uniq может быть решением (если не дублируются пустые строки)

0 голосов
/ 28 мая 2009

Я так понимаю, вы, вероятно, захотите удалить строки, которые имеют только пробелы.

Это можно сделать с помощью:

sed /^[:space:]*$/d FILE
0 голосов
/ 28 мая 2009

Супер легко сделать с Vim. Просто откройте файл и введите следующее:

:%s/\n\n\n*/\r\r/

Это уменьшит все блоки с более чем 2 новыми строками до 2 новых. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...