Pregunta Eliminar filas duplicadas en Notepad ++


¿Es posible eliminar filas duplicadas en Notepad ++, dejando solo una sola aparición de una línea?


504
2017-10-18 10:42


origen


Respuestas:


Notepad ++ puede hacerlo, siempre que desee ordenar por línea, y eliminar las líneas duplicadas al mismo tiempo. 

Necesitará el complemento TextFX. Esto solía incluirse en versiones anteriores de Notepad ++, pero si tiene una versión más nueva, puede agregarla desde el menú yendo a Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install. En algunos casos, también se puede llamar TextFX Characters, pero esto es lo mismo

Las casillas de verificación y los botones necesarios ahora aparecerán en el menú debajo de: TextFX -> TextFX Tools.

Asegúrese de que esté marcada "ordenar salidas únicas ...". A continuación, selecciona un bloque de texto (Ctrl+UN para seleccionar el documento completo). Finalmente, haga clic en "ordenar las mayúsculas y minúsculas" o "ordenar las líneas sin distinción de mayúsculas y minúsculas"

menu layout in n++


707
2017-10-18 10:46



Desde Notepad ++ Versión 6 puede usar esta expresión regular en el diálogo de búsqueda y reemplazo:

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

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

¡No es necesario clasificar para eso y las filas duplicadas pueden estar en cualquier parte del archivo!

Debe verificar las opciones "Expresión regular" y ". Coincide con la nueva línea":

Notepad++ Replace dialogue

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

  • (.*?) coincide con cualquier carácter 0 o más veces, pero el menor número posible (coincide exactamente en la fila, esto es necesario debido a la opción ". coincide con la nueva línea"). La fila coincidente se almacena, debido a los corchetes que la rodean y accesible mediante \1 

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

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

  • (?=.*^\1$) esta es una afirmación positiva de anticipación. Esta es la parte importante de esta expresión regular, una fila solo coincide (y se elimina), cuando hay exactamente la misma fila que sigue a otra parte del archivo.


478
2018-04-30 06:27



si las filas están inmediatamente después una de la otra, entonces puede usar una expresión regular reemplazar

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

Reemplazar con: \1


71
2017-10-18 10:53



Si no le importa el orden de las filas (que no creo que tenga), puede usar un cuadro de Linux / FreeBSD / MacOSX / Cygwin y hacer:

$ cat yourfile | sort | uniq > yourfile_nodups

A continuación, abra el archivo nuevamente en Notepad ++.


23
2017-10-18 10:46



Notepad ++ 

-> Reemplazar ventana

Asegúrese de que en el modo de búsqueda

ha seleccionado el botón de opción de expresión regular

Encontrar que:

^ (. *) (\ r? \ n \ 1) + $

Reemplazar con:

$ 1

antes de:

y creemos que hay

y creemos que hay

linea sola

Es posible que

Es posible que

después:

y creemos que hay

linea sola

Es posible que


21
2018-05-20 22:21



Las últimas versiones de Notepad ++ aparentemente no incluyen el complemento TextFX. Para usar el complemento para clasificar / eliminar duplicados, el complemento debe descargarse e instalarse (más involucrado) o agregarse usando el administrador de complementos.

A) Manera fácil (como se describe aquí)

Complementos -> Administrador de complementos -> Mostrar administrador de complementos -> Pestaña disponible -> Caracteres TextFX -> Instalar

B) Manera más complicada, si se necesita otra versión o la manera fácil no funciona.

  1. Descargue el complemento 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 complementos de Notepad ++, como por ejemplo:
      C: \ Archivos de programa \ Notepad ++ \ plugins

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

Después de instalar el complemento de TextFX, siga las instrucciones de la Respuesta n.º 1 para ordenar y eliminar los duplicados.

Además, considere configurar un atajo de teclado usando Configuración> asignador Shorcut si usa este comando con frecuencia o desea replicar un atajo de teclado, como F9 en TextPad para ordenar.


14
2017-11-13 16:33



Ninguno funcionó para mí.

Una solución es:

Reemplazar

^(.*)\s+(\r?\n\1\s+)+$

con

\1

Fuente: http://sortedinf.com/?q=remove-duplicate-rows-in-notepad-plus-plus


4
2018-03-24 00:13



El administrador de complementos no está disponible actualmente (no viene con la distribución) para Notepad ++, debe instalarlo manualmente ( https://github.com/bruderstein/nppPluginManager/releases ) e incluso si lo hace, muchos de los complementos ya no están disponibles (sin TextFX).

Tal vez hay otro complemento que contiene la funcionalidad requerida. Aparte de eso, la única forma de hacerlo en NotePad ++ es usar algún regex para hacer coincidir y luego reemplazar (CTRL + F -> Reemplazar pestaña).

Aunque hay muchas funcionalidades disponibles a través de Editar elemento del menú (recorte, eliminación de líneas vacías, clasificación, conversión de EOL) no hay una operación "única" disponible.

Si tiene Windows 10, entonces puede habilitar Bash (simplemente escriba Ubuntu en Microsoft Store y siga las instrucciones en la Descripción para instalarlo) y use cat your_file.txt | sort | uniq > your_file_edited.txt. Por supuesto, debe estar en el mismo directorio de trabajo que "su_archivo.txt" o referirse a él a través de su ruta.


1
2018-02-23 14:42



Busque la expresión regular: \b(\w+)\b([\w\W]*)\b\1\b

Reemplazarlo por: $1$2

Presione el botón Reemplazar hasta que no haya más coincidencias para la expresión regular en su archivo.


1
2018-05-22 13:05



Es posible que necesite un complemento para hacer esto. Puedes probar la línea de comando cc.ddl(eliminar líneas duplicadas) de ConyEdit. Es un complemento de editor cruzado para los editores de texto, incluido Notepad ++.

Con ConyEdit ejecutándose en segundo plano, siga los pasos a continuación: 

  1. ingresa la línea de comando cc.ddl al final del texto.
  2. copia el texto y la línea de comando.
  3. pegar, entonces verá lo que quiere.

Ejemplo
enter image description here


0
2017-07-07 14:53