23 votos

¿Cómo puedo eliminar líneas duplicadas en Visual Studio Code?

Imagina que tienes el siguiente texto:

abc
123
abc
456
789
abc
abc

Quiero eliminar todas las líneas "abc" y solo mantener una. No me importa ordenar. El resultado debería ser así:

abc
123
456
789

50voto

Marc.2377 Puntos 1405

Si el orden de las líneas no es importante

Ordene alfabéticamente las líneas, si aún no lo han hecho, y realice los siguientes pasos:
(basado en esta pregunta relacionada: <a href="https://stackoverflow.com/q/1573361/3258851">¿Cómo encuentro y elimino líneas duplicadas de un archivo usando Expresiones Regulares?</a>)

  1. Control+F

  2. Activar el modo "Reemplazar"

  3. Activar "Usar Expresión Regular" (el ícono con el símbolo *`.`**)

  4. En el campo de búsqueda, escriba ^(.*)(\n\1)+$

  5. En el campo "reemplazar con", escriba $1

  6. Haga clic en el botón Reemplazar Todo ("Reemplazar Todo").

Si el orden de las líneas es importante por lo que no se pueden ordenar

En este caso, recurra a una solución fuera de VS Code (ver aquí), o - si su documento no es muy grande y no le importa presionar repetidamente el botón Reemplazar Todo - siga los pasos anteriores, pero en los pasos 4 y 5, ingrese lo siguiente:
(basado en <a href="https://stackoverflow.com/q/48722064/3258851">Eliminar líneas duplicadas específicas sin ordenar</a>)

Precaución: Bloques para archivos con demasiadas líneas (1000+); puede hacer que VS Code se bloquee; puede introducir líneas en blanco en algunos casos.

  • búsqueda: ((^[^\S$]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\n)?

  • reemplazar con: $1

y luego haga clic en el botón "Reemplazar Todo" tantas veces como haya ocurrencias duplicadas.

Sabrá que es suficiente cuando el recuento de líneas deje de disminuir al hacer clic en el botón. Navegue hasta la última línea del documento para mantener un ojo en eso.

13voto

SimonAx Puntos 557

Acabo de tener el mismo problema y encontré el paquete "Sort lines" de Visual Studio Code. Consulta el mercado de Visual Studio Code para obtener más detalles (por ejemplo, Sort lines).

Este paquete tiene la opción "Sorting lines (unique)", que funcionó para mí. Ten cuidado con los espacios en blanco al principio/final de las líneas. Influyen en si las líneas se consideran únicas o no.

3voto

Lavock Puntos 51

Intenta buscar y reemplazar con una expresión regular.

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

  • Reemplazar: $1$2

Es posible introducir algo de variación en el primer grupo.

2voto

perfecto25 Puntos 59

Instala la extensión DupChecker, presiona F1, y escribe "Revisar duplicados".

Revisará los duplicados y preguntará si deseas eliminarlos.

1voto

Mark Puntos 7606

A partir de Visual Studio Code 1.62 (lanzado en octubre de 2021) hay un nuevo comando Eliminar líneas duplicadas. Elimina líneas duplicadas dentro de una selección o de todo el documento.

No hay una combinación de teclas predeterminada para este comando. Si deseas configurar una, el nombre del comando es editor.action.removeDuplicateLines.

Eliminar líneas duplicadas


Aquí tienes una extensión muy interesante: Transformer

Funciones:

  • Líneas únicas como un nuevo documento

  • Líneas únicas

  • Alinear CSV

  • Alinear al cursor

  • Compactar CSV

  • Copiar a un nuevo documento

  • Contar líneas duplicadas como un nuevo documento

  • Codificar / Decodificar

  • Filtrar líneas como un nuevo documento

  • Filtrar líneas

  • Unir líneas

  • Cadena JSON como texto

  • Líneas como arreglo de cadenas JSON

  • Normalizar marcas diacríticas

  • Barajar líneas

  • Barajar selecciones

  • Invertir líneas

  • Invertir selecciones

  • Rotar selecciones hacia atrás

  • Rotar selecciones hacia adelante

  • Seleccionar resaltados

  • Seleccionar líneas

  • Selección como cadena JSON

  • Ordenar líneas por longitud

  • Ordenar líneas

  • Ordenar selecciones

  • Dividir líneas después de

  • Dividir líneas antes de

  • Dividir líneas

  • Recortar líneas

  • Recortar selecciones

Líneas únicas

Elimina líneas duplicadas del documento. Funciona en la selección o bloque actual si no hay selección.

Líneas únicas como un nuevo documento

Las líneas únicas se abren en un nuevo documento. Funciona en la selección o bloque actual si no hay selección.

No he jugado mucho con ella aparte del comando de "Líneas únicas" pero parece estar bastante bien hecho (¡incluyendo un intento de grabador de macros!).

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