Tengo la costumbre de escribir una línea por oración porque normalmente compilo cosas en LaTex, o escribo en algún otro formato donde los saltos de línea se ignoran. Yo uso una línea en blanco para indicar el comienzo de un nuevo párrafo.
Ahora, tengo un archivo escrito en este estilo que me gustaría enviar como texto sin formato. Quiero eliminar todos los saltos de línea individuales pero dejar intactos los saltos de línea dobles. Esto es lo que he hecho:
sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt
Esto reemplaza las líneas vacías con algún texto que estoy seguro no aparece en el archivo: NEWLINE
y luego elimina todos los saltos de línea con awk (encontré ese truco en algún sitio web) y luego reemplaza la NEWLINE
s con los dos saltos de línea necesarios .
Esto parece una forma larga y sin aliento de hacer algo bastante simple. ¿Hay alguna forma más simple? Además, si hubiera una manera de reemplazar múltiples espacios (que a veces se arrastran por alguna razón) con espacios individuales, eso también sería bueno.
Uso emacs, así que si hay algún truco específico de emacs que sea bueno, pero preferiría ver una versión pura de sed o awk puro.
tr -d "\n"
.