Risposte:
Notepad ++ può farlo, a condizione che si desideri ordinare per riga e rimuovere contemporaneamente le righe duplicate.
Sarà necessario il plug-in TextFX. In precedenza era incluso nelle versioni precedenti di Notepad ++, ma se si dispone di una versione più recente, è possibile aggiungerlo dal menu accedendo a Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. In alcuni casi può anche essere chiamato TextFX Characters
, ma questa è la stessa cosa
Le caselle di controllo ei pulsanti necessari ora apparirà nel menu sotto: TextFX -> TextFX Tools
.
Assicurati che "ordina output solo unici ..." sia selezionato. Successivamente, seleziona un blocco di testo ( Ctrl+ Aper selezionare l'intero documento). Infine, fai clic su "ordina le linee maiuscole e minuscole" o "ordina le linee maiuscole e minuscole"
Da Notepad ++ versione 6 è possibile utilizzare questo regex nella finestra di ricerca e sostituzione:
^(.*?)$\s+?^(?=.*^\1$)
e sostituire con niente . Ciò lascia da tutte le righe duplicate l'ultima occorrenza nel file.
Non è necessario alcun ordinamento per questo e le righe duplicate possono trovarsi ovunque nel file!
Devi selezionare le opzioni "Espressione regolare" e ". Corrisponde a nuova riga":
^
corrisponde all'inizio della riga.
(.*?)
corrisponde a qualsiasi carattere 0 o più volte, ma il minor numero possibile (corrisponde esattamente alla riga, ciò è necessario a causa dell'opzione ". abbina nuova riga"). La riga corrispondente viene memorizzata, a causa delle parentesi attorno e accessibile tramite\1
$
corrisponde alla fine della riga.
\s+?^
questa parte corrisponde a tutti i caratteri di spazi bianchi (nuove righe!) fino all'inizio della riga successiva ==> In questo modo vengono rimosse le nuove righe dopo la riga corrispondente, in modo che non vi siano righe vuote dopo la sostituzione.
(?=.*^\1$)
questa è un'affermazione positiva. Questa è la parte importante in questa regex, una riga viene abbinata (e rimossa) solo quando c'è esattamente la stessa riga che segue da qualche altra parte nel file.
. matches newline
il trucco.
Se le righe sono immediatamente una dopo l'altra, puoi usare una regex sostitutiva:
Modello di ricerca: ^(.*\r?\n)(\1)+
Sostituirlo con: \1
^(.*\r?\n)(\1)+
Notepad ++
-> Sostituisci finestra
Assicurarsi che nella modalità di ricerca sia stato selezionato il pulsante di opzione Espressione regolare
Trovare cosa:
^ (. *) (\ R? \ N \ 1) + $
Sostituirlo con:
$ 1
Prima:
e pensiamo lì
e pensiamo lì
linea singola
È possibile
È possibile
Dopo:
e pensiamo lì
linea singola
È possibile
Se non ti interessa l'ordine delle righe (cosa che non credo tu faccia), puoi usare una scatola Linux / FreeBSD / Mac OS X / Cygwin e fare:
$ cat yourfile | sort | uniq > yourfile_nodups
Quindi riaprire il file in Notepad ++.
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Le ultime versioni di Notepad ++ apparentemente non includono affatto il plugin TextFX. Per utilizzare il plug-in per ordinare / eliminare i duplicati, il plug-in deve essere scaricato e installato (più interessato) o aggiunto utilizzando il gestore plug-in.
A) Modo semplice (come descritto qui ).
Plugin -> Plugin Manager -> Mostra Plugin Manager -> scheda Disponibile -> Caratteri TextFX -> Installa
B) Modo più coinvolto, se è necessaria un'altra versione o il modo semplice non funziona.
Scarica il plug-in da SourceForge:
Aprire il file zip ed estrarre NppTextFX.dll
Inserire NppTextFX.dll nella directory dei plug-in Notepad ++, ad esempio:
C: \ Programmi \ Notepad ++ \ plugins
Avvia Notepad ++ e TextFX sarà una delle voci del menu file (come visto nella risposta n. 1 sopra di Colin Pickard)
Dopo aver installato il plug-in TextFX, seguire le istruzioni nella risposta n. 1 per ordinare e rimuovere i duplicati.
Inoltre, considera l'impostazione di una scorciatoia da tastiera usando Impostazioni> Mappatore scorciatoia se usi questo comando frequentemente o vuoi replicare una scorciatoia da tastiera, come F9 in TextPad per l'ordinamento.
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
. A parte questo, funziona ancora bene.
Nella versione 7.8, puoi farlo senza plug-in - Modifica -> Operazioni sulla linea -> Rimuovi linee duplicate consecutive. Dovrai ordinare il file per posizionare le linee duplicate in ordine consecutivo prima che funzioni, ma funziona come un incantesimo.
Le opzioni di ordinamento sono disponibili in Modifica -> Operazioni linea -> Ordina per ...
Potrebbe essere necessario un plugin per farlo. Puoi provare la riga di comando cc.ddl
(elimina righe duplicate) di ConyEdit . È un plug-in cross-editor per gli editor di testo, incluso Notepad ++.
Con ConyEdit in esecuzione in background, attenersi alla seguente procedura:
cc.ddl
alla fine del testo. Cerca l'espressione regolare: \b(\w+)\b([\w\W]*)\b\1\b
Sostituiscilo con: $1$2
Premi il pulsante Sostituisci fino a quando non ci sono più corrispondenze per l'espressione regolare nel tuo file.
Nessuno ha funzionato per me.
Una soluzione è:
Sostituire
^(.*)\s+(\r?\n\1\s+)+$
con
\1
^(.*)\s+(\r?\n\1\s+)+$
e no ^(.*)\s*(\r?\n\1\s*)+$
?
Il gestore plugin non è attualmente disponibile (non viene fornito con la distribuzione) per Notepad ++. È necessario installarlo manualmente ( https://github.com/bruderstein/nppPluginManager/releases ) e anche se lo fai, molti plug-in non sono più disponibili (no TextFX).
Forse c'è un altro plugin che contiene la funzionalità richiesta. A parte questo, l'unico modo per farlo in Notepad ++ è usare un regex speciale per la corrispondenza e la sostituzione ( Ctrl+ F→ Sostituisci scheda).
Sebbene ci siano molte funzionalità disponibili tramite Modifica voce di menu (taglio, rimozione di righe vuote, ordinamento, conversione EOL) non è disponibile alcuna operazione "unica".
Se hai Windows 10, puoi abilitare Bash (basta digitare Ubuntu in Microsoft Store e seguire le istruzioni nella descrizione per installarlo) e utilizzare cat your_file.txt | sort | uniq > your_file_edited.txt
. Ovviamente devi trovarti nella stessa directory di lavoro di "your_file.txt" o fare riferimento ad essa tramite il suo percorso.