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).