524 votos

Eliminar filas duplicadas en Notepad ++

¿Es posible quitar filas duplicadas en Notepad ++, dejando sólo ocurrencias única de una línea?.

722voto

Colin Pickard Puntos 23922

Notepad++ puede hacer esto, siempre y cuando desee ordenar por línea, y quitar las líneas duplicadas al mismo tiempo.

Usted necesitará el plugin TextFX. Este solía estar incluido en versiones anteriores de Notepad++, pero si usted tiene una versión nueva, la puede añadir desde el menú enPlugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install. En algunos casos también puede estar llamado TextFX Characters, pero es lo mismo

Los checkbox y botones necesarios ahora aparecerán en el menú bajo: TextFX -> TextFX Tools.

Asegúrese de que "ordenar sólo las salidas únicas..." está marcado. A continuación, seleccione un bloque de texto (Ctrl+a para seleccionar todo el documento). Por último, haga clic en "ordenar las líneas sensible a mayusculas" u "ordenar líneas minúsculas"

menu layout in n++

511voto

stema Puntos 36113

Desde el Notepad++ Versión 6 puedes usar este regex en la búsqueda y reemplazar el diálogo:

^(.*?)$\s+?^(?=.*^\1$)

y reemplazar con nada. Esto deja de todas las filas duplicadas la última ocurrencia en el archivo.

No se necesita clasificación para eso y las filas duplicadas pueden estar en cualquier parte del archivo!

Tienes que marcar las opciones "Expresión regular" y ". coincide con la nueva línea":

Notepad++ Replace dialogue

  • ^ coincide con el comienzo de la línea.

  • (.*?) coincide con cualquier carácter 0 o más veces, pero tan pocas como sea posible (coincide exactamente en la fila, esto es necesario debido a la opción ". coincide con la nueva línea"). La fila emparejada se almacena, debido a los corchetes alrededor y se puede acceder a ella usando \1

  • $ coincide con el final de la línea.

  • \s+?^ esta parte coincide con todos los caracteres de los espacios en blanco (¡nuevas líneas!) hasta el comienzo de la siguiente fila ==> Esto elimina las nuevas líneas después de la fila coincidente, de modo que no hay ninguna fila vacía después del reemplazo.

  • (?=.*^\1$) esta es una afirmación positiva de lookahead. Esta es la parte importante en este regex, una fila sólo se empareja (y se elimina), cuando hay exactamente la misma fila que sigue en otra parte del archivo.

75voto

Grant Peters Puntos 3718

si las filas están inmediatamente después de cada una, entonces puedes usar un sustituto de regex

Patrón de búsqueda: ^(.*\r?\n)\1

Reemplazar con: \1

23voto

Pablo Santa Cruz Puntos 73944

Si no te importa el orden de las filas (que no creo que te importe), entonces puedes usar una caja Linux/FreeBSD/MacOSX/Cygwin y hacerlo:

$ cat yourfile | sort | uniq > yourfile_nodups

Entonces abre el archivo de nuevo en el Notepad++.

14voto

eeasterly Puntos 336

Las últimas versiones de Notepad++ no incluyen aparentemente el plugin TextFX en absoluto. Para poder utilizar el plugin para ordenar/eliminar duplicados, el plugin debe ser descargado e instalado (más involucrado) o añadido utilizando el gestor de plugins.

A) La manera fácil (como se describe aquí).

Plugins -> Administrador de Plugins -> Mostrar Administrador de Plugins -> Pestaña disponible -> Caracteres de TextFX -> Instalar

B) La forma más involucrada, si se necesita otra versión o la forma fácil no funciona.

  1. Descargue el plugin de SourceForge:

    http://downloads.sourceforge.net/project/npp-plugins/TextFX/TextFX%20v0.26/TextFX.v0.26.unicode.bin.zip

  2. Abra el archivo zip y extraiga NppTextFX.dll

  3. Lugar NppTextFX.dll en el directorio de plugins de Notepad++, como:
    C:\N- Archivos de programa\N-Notepad++\N-plugins

  4. Inicie Notepad++, y TextFX será uno de los elementos del menú de archivos (como se ve en la respuesta #1 arriba de Colin Pickard)

Después de instalar el plugin TextFX, siga las instrucciones de la respuesta 1 para ordenar y eliminar los duplicados.

Además, considere la posibilidad de crear un atajo de teclado utilizando Ajustes > Mapeador de atajos si usas este comando con frecuencia o quieres replicar un atajo de teclado, como F9 en TextPad para ordenar.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X