2016-06-23 7 views
15

Diciamo che avete il seguente testo:Come rimuovere le linee duplicate nel codice di Visual Studio?

abc 
123 
abc 
456 
789 
abc 
abc 

voglio rimuovere tutti i "abc" linee e tenere solo uno. Non mi dispiace ordinare. Il risultato dovrebbe essere simile a questo:

abc 
123 
456 
789 
+0

Si prega di provare a migliorare questa domanda mostrandoci il tuo miglior tentativo di buona fede e facendo una domanda molto più specifica su ciò che ti confonde. Quindi, per favore, provalo. – abarisone

risposta

10

Proprio avuto lo stesso problema e ha trovato il pacchetto di VSCode "Sort linee", vedono il mercato VSCode per i dettagli (ad esempio https://marketplace.visualstudio.com/items?itemName=Tyriar.sort-lines).

Questo pacchetto ha l'opzione "Ordinamento linee (unico)", che ha fatto per me. Prenditi cura degli spazi bianchi all'inizio/alla fine delle linee, influenzano se le linee sono considerate uniche o meno.

+0

https://marketplace.visualstudio.com/items?itemName=bibhasdn.unique-lines dovrebbe funzionare anche. – kcpr

+1

Sembra che l'estensione non sia più in grado di rimuovere le voci duplicate. La combinazione con [la risposta] (https://stackoverflow.com/a/45829605/31532) di @ Marc-2377 sembra fare il trucco per me. –

20
  1. controllo + F

  2. Toggle "modalità di sostituzione"

  3. Toggle "Usa Regular Expression" (l'icona con il simbolo .*)

  4. Digitare il campo di ricerca:

    ^(.*)(\r?\n\1)+$ 
    
  5. digitare il "sostituire con" campo:

    $1 
    
  6. Fare clic su "Sostituisci tutto".

Sulla base di questa domanda relativa: find duplicate lines and remove using regular expression with replace feature

+2

Trova solo i duplicati se la riga immediatamente successiva alla riga corrente è un duplicato. La ricerca rispetto all'esempio nel codice VS con la regex fornita seleziona solo le ultime due righe. Detto questo, ha funzionato bene dopo aver ordinato le mie linee. –

+0

@JamesRoss Ah! Ben annotato. –

1

Prova trovare & sostituirli con regexp.

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

  • Sostituire: $1$2

E 'possibile introdurre qualche variazione nel primo gruppo.