Unir líneas hasta llegar a una cadena "terminal"

Unir líneas hasta llegar a una cadena "terminal"

En un archivo tengo datos como los siguientes:

123
456
789
---
101112
131415
161718
192021
------
222223242526
27282930313233
-----------------------

Necesito cambiar las líneas para que se vean así:

123 456 789 ---
101112 131415 161718 192021 ------
222223242526 27282930313233 -----------------------

es decir, hasta una cadena específica (una secuencia de guiones), las líneas deben fusionarse.

He probado muchos métodos, pero no consigo que funcione.

Tengo alrededor de 15000 líneas en mi archivo real.

Respuesta1

Aquí hay una manera de hacer el trabajo, esto reemplazará todos los saltos de línea que no estén precedidos por un guión con un espacio:

  • Ctrl+H
  • Encontrar que:(?<!-)\R
  • Reemplazar con:A SPACE
  • comprobar Envolver alrededor
  • comprobar expresión regular
  • Replace all

Explicación:

(?<!-)  : negative lookbehind, make sure we don't have a dash before
\R      : any kind of linebreak

Resultado para el ejemplo dado:

123 456 789 ---
101112 131415 161718 192021 ------
222223242526 27282930313233 -----------------------

información relacionada