La pregunta más o menos lo dice todo. Soy consciente de que /^$/d
eliminará todas las líneas en blanco, pero no puedo ver cómo decir 'reemplazar dos o más líneas en blanco con una sola línea en blanco'
¿Algunas ideas?
vim
sed
regular-expression
Andrew Bolster
fuente
fuente
-s
opción de cat: solo una nota histórica, no está en POSIX, pero parece estar disponible en BSD y GNU cat.:%!cat -s
. ¡Aprende algo GNnew todos los días!%s!\n\n\n\+!\r\r!g
Use
\n
para indicar una nueva línea en el patrón de búsqueda. Use Ctrl+ Men el texto de reemplazo, o una referencia inversa. Ver:help pattern
y:help sub-replace-special
(vinculado desde:help :s
).fuente
\n
no funciona en el texto de reemplazo.Si en Vim, solo haz esto:
fuente
man
página.Usando Perl:
-00
la opción de línea de comando activa el modo slurp de párrafo, lo que significa que Perl lee el texto párrafo por párrafo en lugar de línea por línea.fuente
Con sed (GNU sed) 4.2.2:
fuente
Sé que este es un código tonto, pero quería resolver este problema en menos de 10 minutos, y funcionó
fuente
uniq
elimina líneas iguales adyacentes. Que no es lo que OP quiere.