Ho avuto necessità di mettere mano a un file con voci duplicate, e rimuoverle per cercare di lavorare in maniera più pulita. Come al solito, ho cercato una soluzione da applicare tramite l’utilizzo di Notepad++, ottenendo ovviamente una risposta già utilizzata in passato. Un’espressione regolare, trovata in una discussione su Stack Overflow.
Senza necessità di evidenziare alcunché, ti basterà lanciare una sostituzione testo (CTRL+H), selezionando Espressione regolare, e inserendo nel campo sorgente ^(.*?)$\s+?^(?=.*^\1$)
, mentre dovrai lasciare vuoto il secondo campo (Sostituisci con). Appena fatto, fai clic su Sostituisci tutti ed il gioco sarà fatto.
Giusto per dettagliare meglio, cerco di riassumere quanto spiegato in originale:
^
corrisponde all’inizio della riga.(.*?)
va a memorizzare progressivamente le righe trovate nel file, così da renderle disponibili in seguito per l’individuazione dei duplicati.$
corrisponde al termine della riga.\s+?^
questa parte corrisponde a tutti i caratteri di spaziatura (tipicamente nuove righe!) fino all’inizio della nuova riga (in pratica va a rimuovere le righe vuote che vengono lasciate dopo aver rimosso un duplicato).(?=.*^\1$)
è la parte di espressione regex che permette di rimuovere una riga quando questa è la stessa identica precedentemente rilevata in qualsiasi altro punto del file.
Buon lavoro! :-)
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)
Pillole
Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato agli articoli "a bruciapelo"!
Se vuoi leggere le altre pillole fai clic qui.