¿Es posible eliminar filas duplicadas en Notepad++, dejando solo una única aparición de una línea?
Respuestas
¿Demasiados anuncios?Notepad++ con el complemento TextFX puede hacer esto, siempre y cuando desees ordenar por línea y eliminar las líneas duplicadas al mismo tiempo.
Para instalar el TextFX en la última versión de Notepad++ necesitas descargarlo desde aquí: https://sourceforge.net/projects/npp-plugins/files/TextFX
El complemento TextFX solía estar incluido en versiones antiguas de Notepad++, o era posible añadirlo desde el menú yendo a Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. En algunos casos también puede ser llamado TextFX Characters
, pero es lo mismo.
Las casillas de verificación y botones necesarios ahora aparecerán en el menú bajo: TextFX -> TextFX Tools
.
Asegúrate de que "sort outputs only unique..." esté marcado. Luego, selecciona un bloque de texto (Ctrl+A para seleccionar todo el documento). Finalmente, haz clic en "sort lines case sensitive" o "sort lines case insensitive"
Desde la versión 6 de Notepad++ puedes usar esta regex 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 ordenar y las filas duplicadas pueden estar en cualquier lugar del archivo!
Necesitas marcar las opciones "Expresión regular" y ". coincide con nueva línea":
-
^
coincide con el inicio de la línea. -
(.*?)
coincide con cualquier caracter 0 o más veces, pero tan pocas veces como sea posible (coincide exactamente en una fila, esto es necesario por la opción ". coincide con nueva línea"). La fila coincidida se almacena, debido a los paréntesis alrededor y es accesible utilizando\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 inicio de la siguiente fila ==> Esto elimina las nuevas líneas después de la fila coincidida, para que no haya ninguna fila vacía después del reemplazo. -
(?=.*^\1$)
esta es una afirmación de búsqueda hacia adelante positiva. Esta es la parte importante en esta regex, una fila solo se coincidirá (y se eliminará), cuando haya exactamente la misma fila que sigue en algún otro lugar del archivo.
Las últimas versiones de Notepad++ aparentemente no incluyen en absoluto el complemento TextFX. Para poder utilizar el complemento para ordenar/eliminar duplicados, el complemento debe ser descargado e instalado (más complicado) o agregado mediante el administrador de complementos.
A) Forma sencilla (como se describe aquí).
Plugins -> Administrador de complementos -> Mostrar administrador de complementos -> Pestaña Disponible -> TextFX Characters -> Instalar
B) Forma más compleja, si se necesita otra versión o la forma sencilla no funciona.
-
Descargar el complemento desde SourceForge:
-
Abrir el archivo zip y extraer NppTextFX.dll
-
Colocar NppTextFX.dll en el directorio de complementos de Notepad++, por ejemplo:
C:\Program Files\Notepad++\plugins -
Iniciar Notepad++, y TextFX será uno de los elementos del menú de 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 duplicados.
También considere configurar un atajo de teclado utilizando Configuración > Mapeador de atajos si utiliza este comando con frecuencia o desea replicar un atajo de teclado, como F9 en TextPad para ordenar.