it-swarm-es.com

Eliminando filas duplicadas en Notepad ++

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

548
UGEEN

Notepad ++ puede hacer esto, 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 reciente, puede agregarla desde el menú yendo a Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install. En algunos casos, también puede llamarse TextFX Characters, pero esto es lo mismo

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

Asegúrese de que la opción "Clasificar salidas solo únicas ..." esté marcada. A continuación, seleccione un bloque de texto (Ctrl+A para seleccionar todo el documento). Por último, haga clic en "ordenar líneas con mayúsculas y minúsculas" o "ordenar líneas con mayúsculas y minúsculas"

menu layout in n++

743
Colin Pickard

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 de todas las filas duplicadas la última aparición en el archivo.

¡No se necesita ordenación 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 alrededor y accesibles mediante \1

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

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

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

555
stema

si las filas están inmediatamente una detrás de la otra, entonces puede usar un reemplazo de expresiones regulares

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

Reemplazar con: \1

84
Grant Peters

Bloc de notas ++

-> Reemplazar ventana

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

has seleccionado el botón de radio Expresión regular

Encontrar que:

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

Reemplazar con:

$ 1

antes de:

y pensamos que hay

y pensamos que hay

linea sola

Es posible que

Es posible que

después:

y pensamos que hay

linea sola

Es posible que

29
blueberry0xff

Si no le importa el orden de las filas (lo que no creo que haga), entonces puede usar una caja Linux/FreeBSD/Mac OS X/Cygwin y hacer

$ cat yourfile | sort | uniq > yourfile_nodups

Luego abra el archivo nuevamente en Notepad ++.

25
Pablo Santa Cruz

Las últimas versiones de Notepad ++ aparentemente no incluyen el complemento TextFX. Para utilizar el complemento para ordenar/eliminar duplicados, el complemento debe ser descargado e instalado (más involucrado) o agregado mediante el administrador de complementos.

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

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

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

  1. Descargue el plugin desde 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. Coloque 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ú del archivo (como se ve en la Respuesta # 1 arriba por Colin Pickard)

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

Además, considere la posibilidad de configurar un método abreviado de teclado usando Configuración> Asignador de accesos directos si usa este comando con frecuencia o si desea replicar un método abreviado de teclado, como F9 en TextPad para clasificar.

14
eeasterly

Ninguno trabajó para mí.

Una solución es:

Reemplazar

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

con

\1
4

Es posible que necesite un complemento para hacer esto. Puede 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. ingrese la línea de comando cc.ddl al final del texto.
  2. copia el texto y la línea de comando.
  3. pega, entonces verás lo que quieras.

Ejemplo
 enter image description here

4
Donald

Busca la Expresión Regular: \b(\w+)\b([\w\W]*)\b\1\b

Reemplácelo con: $1$2

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

3
Hesham Eraqi

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 ellos los complementos ya no están disponibles (sin TextFX).

Tal vez haya otro plugin que contenga la funcionalidad requerida. Aparte de eso, la única forma de hacerlo en NotePad ++ es usar algo especial regex para hacer coincidir y luego reemplazar (CTRL + F -> Reemplazar pestaña).

Aunque hay muchas funciones disponibles a través de Editar elemento del menú (recortar, eliminar líneas vacías, ordenar, convertir EOL), no hay una operación "única" disponible.

Si tienes Windows 10, puedes habilitar Bash (solo escribe Ubuntu en Microsoft Store y sigue las instrucciones en la Descripción para instalarlo) y usa cat your_file.txt | sort | uniq > your_file_edited.txt. Por supuesto, debe estar en el mismo directorio de trabajo que "your_file.txt" o referirse a él a través de su ruta.

1
Patronaut