¿Cómo eliminar cada línea impar en Notepad ++?

29

Estoy tratando de editar un documento de 20000 líneas. Tengo que eliminar cada línea impar, por ejemplo:

Apple
Monkey
Orange
Lion
fruit
animal

¿Cómo puedo eliminar los caracteres de cada línea impar en el documento?

Nithin N
fuente
¿Qué quieres decir con línea impar? ¿Quiere decir que desea eliminar la palabra extraña (no deseada) de todo el documento?
antzshrek
44
Todas las líneas impares como 1,3,5,7,9,11,13,15 ... etc.
Nithin N
1
Intente reemplazar con una nueva línea (regexp): [\ n. + \ N]
Art Gertner
@ArtGertner probé con la expresión no funciona.
Nithin N
1
Grabaría una estúpida macro: flecha hacia abajo, flecha hacia abajo, del.
chingNotCHing

Respuestas:

23

Puede hacerlo con buscar y reemplazar:

  • Abra el cuadro de diálogo reemplazar ( Ctrl+ H)
  • Seleccione "Expresión regular"
  • Encontrar que: .+\r\n(.+(\r\n|$))
  • Reemplazar con:
    $1
  • Presione "Reemplazar todo"

Notas:

  • Dependiendo de su sistema operativo, debe usar \r(Mac anterior), \n(Unix, OS X) o \r\n(Windows) para que coincida con el final de línea, o simplemente usar el \Rque debería funcionar en todas partes (gracias por @Aurel Bílý)
  • \n|$ es necesario para tener un resultado correcto incluso al final del archivo
  • De forma predeterminada, Notepad ++ reemplaza desde la posición real del cursor hasta el final del archivo. Asegúrese de colocar el cursor al comienzo del archivo.
    • (También puede marcar "envolver", pero en ese caso primero eliminará la línea en la que se encuentra el cursor, en lugar de buscar realmente una línea impar).

Ingrese la descripción de la imagen aquí

Máté Juhász
fuente
Casi funciona, pero no está editando el primer conjunto de líneas impares, digamos del 1 al 15.
Nithin N
Cambie la captura de pantalla con más transparencia de esa ventana de reemplazo.
Biswapriyo
11
Tenga en cuenta que \rcomo final de línea es muy raro, de hecho se usó en Mac OS, pero en las versiones clásicas anteriores a OS-X. En OS X y en adelante, los finales de línea son \n, como cualquier Unix sano. También \Res mejor para hacer coincidir cualquier final de línea.
Aurel Bílý
@ AurelBílý Es cierto, sin embargo, Notepad ++ solo se ejecuta en Windows, por lo que la portabilidad aquí no es un gran problema.
Rob
18
  • Ctrl+H
  • Encontrar que: .+\R(.+)
  • Reemplazar con: $1
  • Replace all

Explicación:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • Verificar expresión regular
  • NO COMPROBAR . matches newline

Resultado para el ejemplo dado:

Monkey
Lion
animal
Toto
fuente
@NithinN: Tenga en cuenta que la respuesta aceptada no funciona con archivos de Linux (es decir, salto de línea \n)
Toto
7
  1. Abra el archivo y coloque el cursor de texto al comienzo de la primera línea.
  2. Menú → MacroIniciar grabación
  3. Presione la Endtecla en el teclado
  4. Shift+ Home, entoncesbackspace
  5. Down
  6. Backspace
  7. Down
  8. Menú → MacroDetener grabación
  9. Menú → MacroEjecutar una macro varias veces → Marque Ejecutar hasta el final del archivo
  10. Hacer clic Run

Básicamente, realice la acción una vez para eliminar una línea impar, luego haga que el programa repita la acción hasta el final del archivo. ¡Esto se puede usar para resolver muchos problemas!

UsuarioF40
fuente
1

Acabo de comprobar en la PC de mi colega que realmente usa Notepad ++. Prueba esto:

Ingrese la descripción de la imagen aquí

Art Gertner
fuente
Me parece que esto elimina las líneas pares (2,4,6 ...), no las impares.
Máté Juhász
1
Eso es correcto. Sin embargo, eliminar líneas pares es más fácil, y el problema se puede resolver agregando una línea vacía al comienzo del archivo
Art Gertner
@ArtGertner debería ser \ r \ n. + \ R \ n reemplazado por \ r \ n
chingNotCHing el
@chingNotCHing, ¡buena! He actualizado mi respuesta
Art Gertner
@ArtGertner Como señaló, funciona solo para líneas pares. Pero para un gran conjunto de datos no se está editando para el primer conjunto de datos, digamos de la línea 1-15.
Nithin N