Pergunta mais ou menos diz tudo. Estou ciente de que /^$/d
removerá todas as linhas em branco, mas não consigo ver como dizer 'substituir duas ou mais linhas em branco por uma única linha em branco'
Alguma ideia?
vim
sed
regular-expression
Andrew Bolster
fonte
fonte
-s
opção do gato - apenas uma nota histórica, não está no POSIX, mas parece estar disponível no BSD e no GNU cat.:%!cat -s
. Aprenda algo GNnew todos os dias!%s!\n\n\n\+!\r\r!g
Use
\n
para indicar uma nova linha no padrão de pesquisa. Use Ctrl+ Mno texto de substituição ou em uma referência anterior. Veja:help pattern
e:help sub-replace-special
(linkado de:help :s
).fonte
\n
não funciona no texto de substituição.Se no Vim, faça o seguinte:
fonte
man
página.Usando Perl:
-00
A opção de linha de comando ativa o modo slurp de parágrafo, o que significa que Perl lê texto parágrafo por parágrafo, em vez de linha por linha.fonte
Com sed (GNU sed) 4.2.2:
fonte
Eu sei que esse é um código bobo, mas eu queria resolver esse problema em menos de 10 minutos e funcionou
fonte
uniq
remove as linhas iguais adjacentes. O que não é o que o OP quer.