Unir líneas divididas con un carácter específico al final de la línea

Unir líneas divididas con un carácter específico al final de la línea

Tengo que unir dos líneas. Uno de ellos tiene un punto final con respecto al anterior en el ejemplo de texto completo:

line1:hello
line2:goodbye.

Necesito cambiarlo a:

line1: hello goodbye.

Tengo que eliminar cada tercera línea (múltiplos de 3, como 3,6,9,12,15,18,21,... líneas) de este texto enorme.

Esto es lo que quiero hacer.

Primera tarea:

  • revisa cada línea

  • si termina con un punto, .pase a la siguiente línea,

  • si no termina con un punto, .una la siguiente línea a la línea actual.

Cada línea no tiene una etiqueta de número de línea, comienzan con palabras normales.

Segunda tarea

  • desde el principio, cada tercera línea es basura y debe eliminarse

  • La primera tarea también debe realizarse porque en algunas partes la tercera oración se divide en 2 líneas, así que primero tengo que unir completamente la línea que se dividió en 2 líneas y luego realizo la segunda tarea.

Utilizo Windows 7. Puedo usar Notepad++ y Ultraedit.

Respuesta1

Primera tareaLo haría en Notepad++, usando búsqueda y reemplazo de expresiones regulares:

  • Abra "Buscar" > "Reemplazar..."
  • Como "Buscar qué:", ingrese "([^\.])\r\n"(sin las comillas)
    • Significado de Regex: busque una línea que termine con algo diferente a "."
    • Nota: Si el documento tiene terminaciones de archivo de Linux, debe usar solo "\n" en lugar de "\r\n".
  • Como "Reemplazar con:", ingrese "\1 "(sin las comillas; asegúrese de copiar también el espacio después de "\1")
  • Como "Modo de búsqueda", seleccione "Expresión regular"
  • Haga clic en "Reemplazar todo"

Aporte:

hello
goodbye.
hello
hello
goodbye.
hello.
goodbye.

Producción:

hello goodbye.
hello hello goodbye.
hello.
goodbye.

Elsegunda tarease puede hacer con una expresión regular aún más larga:

  • Abra "Buscar" > "Reemplazar..."
  • Como "Buscar qué:", ingrese "(([^\r\n]*\r\n){2})[^\r\n]*\r\n"(sin las comillas)
    • Significado de Regex: Encuentra un bloque de tres líneas.
    • Nota: Nuevamente, si el documento tiene terminaciones de archivo de Linux, debe usar simplemente "\n" en lugar de "\r\n".
  • Como "Reemplazar con:", ingrese "\1"(sin las comillas)
  • Como "Modo de búsqueda", seleccione "Expresión regular"
  • Haga clic en "Reemplazar todo"

Aporte:

hello goodbye.
hello hello goodbye.
sdlfj sdgf.
hello.
goodbye.
(/%&/$&=)?)=´?&%.
goodbye goodbye.
bye.
sldfjsdökl.
hello.

Producción:

hello goodbye.
hello hello goodbye.
hello.
goodbye.
goodbye goodbye.
bye.
hello.

Nota: En ambos ejemplos supuse que no hay espacios en blanco al final. Si lo hay, primero deberá eliminarlo, por ejemplo, reemplazando expresiones regulares (como arriba) "\s*$"con ""(sin las comillas).

información relacionada