Rimuovi Righe Duplicate

Rimuovi le righe duplicate dal testo, mantenendo solo le righe uniche

Prova un esempio

Righe di input

Righe uniche

Esegue in locale · Sicuro per incollare segreti
Le righe uniche appariranno qui…

Cos'è la Rimozione delle Righe Duplicate?

La rimozione delle righe duplicate è il processo di scansione di un blocco di testo riga per riga, mantenendo solo la prima occorrenza di ogni riga unica. Quando rimuovi le righe duplicate online, lo strumento suddivide l'input sui caratteri di nuova riga, traccia le righe già incontrate usando una struttura dati basata su hash (come un Set), e restituisce solo le righe non ancora viste. L'ordine originale delle righe viene preservato.

Due righe sono considerate duplicate quando corrispondono esattamente, carattere per carattere. I dati reali, tuttavia, raramente si prestano a un confronto esatto. Spazi iniziali o finali, capitalizzazione inconsistente e caratteri invisibili come tabulazioni o ritorni a capo possono far sì che righe visivamente identiche vengano trattate come uniche. Per questo la maggior parte degli strumenti di deduplicazione offre opzioni per il confronto senza distinzione tra maiuscole e minuscole e per il ritaglio degli spazi prima del confronto.

La deduplicazione è un'operazione distinta dall'ordinamento. Il comando Unix sort -u ordina e deduplica contemporaneamente, modificando l'ordine delle righe. Se hai bisogno di preservare l'ordine originale, devi usare l'approccio seen-set: scorri le righe in sequenza, aggiungi la forma normalizzata di ogni riga a un set e salta le righe la cui chiave esiste già. Questo strumento usa il metodo seen-set, quindi le prime occorrenze rimangono nelle posizioni originali.

Perché Usare Questo Strumento?

Incolla il testo, scegli le opzioni di confronto e ottieni il risultato deduplicato immediatamente. Nessuna configurazione da riga di comando, nessuna scrittura di regex, nessun caricamento di file.

Deduplicazione Istantanea
I risultati si aggiornano mentre scrivi o incolli. Attiva o disattiva la sensibilità alle maiuscole e il ritaglio degli spazi per vedere come le diverse opzioni influenzano l'output senza dover rieseguire nulla.
🔒
Elaborazione Privacy-First
Tutta la deduplicazione avviene nel browser usando JavaScript. Il tuo testo rimane sul dispositivo e non viene mai caricato su un server né registrato da nessuna parte.
🎯
Confronto Configurabile
Abilita la modalità senza distinzione maiuscole per trattare "Mela" e "mela" come la stessa riga. Attiva il ritaglio degli spazi per ignorare gli spazi iniziali e finali durante il confronto.
📋
Nessun Account Necessario
Apri la pagina e inizia a deduplicare. Nessuna registrazione, nessuna estensione, nessuna installazione desktop. Funziona su qualsiasi dispositivo con un browser moderno.

Casi d'Uso del Rimuovi Righe Duplicate

Sviluppo Frontend
Pulisci elenchi di classi CSS, rimuovi istruzioni di importazione ripetute o deduplica le chiavi di traduzione i18n. Rimuovere i duplicati prima di fare commit previene bundle gonfiati e riduce i conflitti di merge.
Sviluppo Backend
Deduplica le voci in requirements.txt, Gemfile o negli elenchi di dipendenze di package.json dopo aver unito rami. Rimuovi voci ripetute da allow-list, deny-list o tabelle di routing.
DevOps e Infrastruttura
Pulisci le voci duplicate dai file .env, dagli elenchi di host o dai ConfigMap di Kubernetes. Le variabili d'ambiente duplicate causano sovrascritture silenziose, quindi individuarle prima del deployment evita bug di configurazione difficili da tracciare.
QA e Test Automation
Rimuovi gli ID di test case ripetuti dai manifest di esecuzione dei test o le asserzioni duplicate nelle suite di test generate. Deduplica i messaggi di errore dall'output dei log per vedere l'insieme unico di fallimenti.
Data Engineering
Elimina le righe duplicate da esportazioni CSV o risultati di query SQL incollati come testo. Pulisci elenchi di email, ID utente o tag prima di importarli in un database o una pipeline.
Studenti e Autodidatti
Rimuovi le voci ripetute da elenchi di vocaboli, righe bibliografiche o appunti di studio. Incolla contenuti da più fonti e ottieni un elenco pulito e univoco senza installare un'applicazione per fogli di calcolo.

Confronto tra Metodi di Deduplicazione

Esistono diversi approcci per rimuovere le righe duplicate, ciascuno con diversi compromessi tra preservazione dell'ordine, utilizzo della memoria e precisione.

MetodoCome FunzionaOrdine di OutputDove Viene Usato
SetHash-based, O(1) lookupUnorderedJavaScript Set, Python set()
Sorted + scanSort then skip adjacentSorted outputUnix sort -u, C++ std::unique
Seen-set + listTrack seen, preserve orderOriginal orderThis tool, Python dict.fromkeys()
Bloom filterProbabilistic membershipMay miss someLarge-scale pipelines, Redis
SQL DISTINCTDatabase-level dedupQuery-dependentSELECT DISTINCT col FROM table

Gestione della Sensibilità alle Maiuscole e degli Spazi

Due opzioni controllano come lo strumento decide se due righe sono duplicate. Capire quando usare ciascuna opzione previene sia i falsi positivi (trattare righe diverse come duplicate) sia i falsi negativi (non rilevare righe che dovrebbero corrispondere).

Sensibile a Maiuscole (predefinito: attivo)
Quando abilitato, "Mela" e "mela" vengono trattate come righe diverse. Disattivalo quando si deduplicano dati inviati dagli utenti, elenchi di nomi di dominio o qualsiasi testo in cui la capitalizzazione è inconsistente ma il significato è lo stesso.
Ritaglia Spazi (predefinito: attivo)
Quando abilitato, gli spazi e le tabulazioni iniziali e finali vengono rimossi prima del confronto. Questo individua le righe che sembrano identiche ma differiscono per caratteri invisibili, comuni nell'output del terminale copiato-incollato, nei file di configurazione indentati e negli artefatti dell'editor.

Esempi di Codice

Rimuovi le righe duplicate in modo programmatico in JavaScript, Python, Go e dalla riga di comando. Ogni esempio mostra la deduplicazione con preservazione dell'ordine e gestisce la sensibilità alle maiuscole.

JavaScript
const text = `apple
banana
apple
Cherry
banana
cherry`

// Remove exact duplicates, preserve order
const unique = [...new Map(
  text.split('\n').map(line => [line, line])
).values()].join('\n')
// → "apple\nbanana\nCherry\ncherry"

// Case-insensitive deduplication
const seen = new Set()
const ciUnique = text.split('\n').filter(line => {
  const key = line.toLowerCase()
  if (seen.has(key)) return false
  seen.add(key)
  return true
}).join('\n')
// → "apple\nbanana\nCherry"

// Trim whitespace before comparing
const trimDedup = text.split('\n').filter(line => {
  const key = line.trim().toLowerCase()
  if (seen.has(key)) return false
  seen.add(key)
  return true
}).join('\n')
Python
text = """apple
banana
apple
Cherry
banana
cherry"""

lines = text.splitlines()

# Remove duplicates, preserve order (Python 3.7+)
unique = list(dict.fromkeys(lines))
# → ['apple', 'banana', 'Cherry', 'cherry']

# Case-insensitive deduplication
seen = set()
ci_unique = []
for line in lines:
    key = line.lower()
    if key not in seen:
        seen.add(key)
        ci_unique.append(line)
# → ['apple', 'banana', 'Cherry']

# With whitespace trimming
seen = set()
trimmed = []
for line in lines:
    key = line.strip().lower()
    if key not in seen:
        seen.add(key)
        trimmed.append(line)
Go
package main

import (
	"fmt"
	"strings"
)

func removeDuplicates(text string) string {
	lines := strings.Split(text, "\n")
	seen := make(map[string]bool)
	result := make([]string, 0, len(lines))

	for _, line := range lines {
		if !seen[line] {
			seen[line] = true
			result = append(result, line)
		}
	}
	return strings.Join(result, "\n")
}

func main() {
	text := "apple\nbanana\napple\ncherry\nbanana"
	fmt.Println(removeDuplicates(text))
	// → apple\nbanana\ncherry
}
CLI (bash)
# Remove duplicates (sorts output — does not preserve order)
sort -u file.txt

# Remove duplicates while preserving original order
awk '!seen[$0]++' file.txt

# Case-insensitive dedup, preserve order
awk 'BEGIN{IGNORECASE=1} !seen[tolower($0)]++' file.txt

# Trim whitespace then dedup
sed 's/^[[:space:]]*//;s/[[:space:]]*$//' file.txt | awk '!seen[$0]++'

# Count duplicates before removing
sort file.txt | uniq -c | sort -rn

Domande Frequenti

Qual è la differenza tra rimuovere i duplicati e usare sort -u?
Il comando sort -u ordina prima tutte le righe alfabeticamente e poi rimuove i duplicati adiacenti, modificando l'ordine originale. L'approccio seen-set, usato da questo strumento, scorre le righe in ordine e salta quelle già incontrate, preservando la sequenza originale. Usa sort -u quando vuoi un output sia ordinato che univoco. Usa l'approccio seen-set quando l'ordine è importante.
Il mio testo viene inviato a un server quando rimuovo i duplicati?
No. Tutta l'elaborazione avviene nel browser usando JavaScript. Il testo non lascia mai il tuo dispositivo. Puoi verificarlo aprendo la scheda Rete negli Strumenti per sviluppatori del browser e confermando che non vengono effettuate richieste quando incolli il testo e attivi le opzioni.
Quante righe può gestire questo strumento?
Lo strumento funziona bene con decine di migliaia di righe. Il Set di JavaScript ha un tempo di ricerca medio O(1), quindi deduplicare 100.000 righe richiede meno di 100 millisecondi su hardware moderno. Per file più grandi di qualche megabyte, usa il one-liner awk '!seen[$0]++' dalla riga di comando, che scorre il file senza caricarlo interamente in memoria.
Come funziona la deduplicazione senza distinzione tra maiuscole e minuscole?
Quando la sensibilità alle maiuscole è disattivata, ogni riga viene convertita in minuscolo prima di essere confrontata con il set delle righe già viste. La versione con la capitalizzazione originale della prima occorrenza viene mantenuta nell'output. Quindi se l'input ha "Mela" alla riga 1 e "mela" alla riga 5, viene mantenuta "Mela" e rimossa "mela".
Posso rimuovere i duplicati e ordinare contemporaneamente?
Questo strumento rimuove i duplicati senza modificare l'ordine delle righe. Per ottenere un output ordinato e univoco, usa prima lo strumento Ordinatore di Righe nella stessa categoria per ordinare il testo, poi incolla il risultato ordinato qui per rimuovere eventuali duplicati rimanenti. In alternativa, usa sort -u dalla riga di comando per una soluzione in un unico passaggio.
Cosa succede con le righe vuote e le righe con soli spazi?
Le righe vuote vengono trattate come qualsiasi altra riga. Se il testo ha tre righe vuote, viene mantenuta solo la prima. Quando il ritaglio degli spazi è attivo, le righe che contengono solo spazi o tabulazioni vengono normalizzate a stringhe vuote prima del confronto, quindi vengono tutte trattate come duplicate della prima riga vuota o con soli spazi.
Come rimuovo i duplicati da un file CSV in base a una colonna specifica?
Questo strumento confronta intere righe, non singole colonne. Per deduplicare un CSV in base a una colonna specifica, usa awk con un separatore di campo: awk -F',' '!seen[$2]++' file.csv rimuove le righe con valori duplicati nella seconda colonna. In Python, usa pandas: df.drop_duplicates(subset=['column_name']). Per dati SQL, usa SELECT DISTINCT o GROUP BY sulla colonna target.