Unindo linhas até que uma string "terminadora" seja alcançada

Unindo linhas até que uma string "terminadora" seja alcançada

Em um arquivo, tenho dados como os seguintes:

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

Preciso mudar as linhas para ficar assim:

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

ou seja, até uma string específica (uma sequência de hífens) as linhas devem ser mescladas.

Já tentei vários métodos, mas não consigo fazer funcionar.

Tenho cerca de 15.000 linhas em meu arquivo real.

Responder1

Aqui está uma maneira de fazer o trabalho: substituirá todas as quebras de linha que não são precedidas por um travessão por um espaço:

  • Ctrl+H
  • Encontre o que:(?<!-)\R
  • Substituir com:A SPACE
  • confira Envolver
  • verifique expressão regular
  • Replace all

Explicação:

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

Resultado para determinado exemplo:

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

informação relacionada