gatto duplicato.txt | sort -k 2 | uniq -f 1
Se ti stai chiedendo con il flag "sort", è per dire a "sort" di ordinare in base alla seconda colonna.
Visualizza tutte le righe ma separa i duplicati
Secondo tutti gli esempi sopra menzionati, "uniq" mantiene solo la prima occorrenza del contenuto duplicato e rimuove il resto. Che ne dici di rimuovere del tutto i contenuti duplicati?? Sì, usando il flag “-u”, possiamo forzare “uniq” a mantenere solo le righe non ripetitive.
gatto duplicato.txt | ordinare
gatto duplicato.txt | ordina | uniq -u
Hmm, troppi duplicati sono spariti..
Salta i caratteri iniziali
Abbiamo discusso su come dire a "uniq" di fare il suo lavoro per altri campi, giusto? È ora di iniziare il controllo dopo un numero di caratteri iniziali. A tal fine, il flag "-s" accompagnato dal numero di caratteri dirà a "uniq" di eseguire il lavoro.
gatto duplicato.txt | sort -k 2 | uniq -s 2
È simile all'esempio in cui "uniq" doveva svolgere il suo compito solo nel secondo campo. Vediamo un altro esempio con questo trucco.
gatto duplicato.txt | ordina | uniq -s 5
Controlla SOLO i caratteri iniziali
Proprio come abbiamo detto a "uniq" di saltare la prima coppia di caratteri, è anche possibile dire a "uniq" di limitare il controllo solo all'interno della prima coppia di caratteri. C'è un flag "-w" dedicato per questo scopo.
gatto duplicato.txt | ordina | uniq -w 5
Questo comando dice a "uniq" di eseguire il controllo dell'unicità entro i primi 5 caratteri.
Vediamo un altro esempio di questo comando.
gatto duplicato.txt | ordina | uniq -w 5
Elimina tutte le altre istanze di voci "duplicate" perché ha eseguito il controllo dell'unicità sulla parte "dupli".
Insensibilità alle maiuscole
Quando si verifica l'unicità, "uniq" controlla anche il caso dei caratteri. In alcune situazioni, la distinzione tra maiuscole e minuscole non ha importanza, quindi possiamo usare il flag "-i" per rendere "uniq" insensibile alle maiuscole.
Qui vi presento il file demo.
Qualche duplicazione davvero intelligente con un misto di lettere maiuscole e minuscole, giusto? È tempo di fare appello alla forza di "uniq" per eliminare il casino!
gatto duplicato.txt | ordina | uniq -i
desiderio concesso!
Uscita con terminazione NULL
Il comportamento predefinito di "uniq" è terminare l'output con una nuova riga. Tuttavia, l'output può anche essere terminato con un NULL. È abbastanza utile se lo utilizzerai negli script. Qui, la bandiera "-z" è ciò che fa il lavoro.
gatto duplicato.txt | ordina | uniq -z
Combinare più flag
Abbiamo imparato un certo numero di bandiere di "uniq", giusto? Che ne dici di combinarli insieme??
Ad esempio, sto combinando l'insensibilità al caso e il numero di ripetizioni insieme.
Se hai mai intenzione di mischiare più flag insieme, in un primo momento, assicurati che funzionino nel modo giusto insieme. A volte le cose non funzionano come dovrebbero.
Pensieri finali
"uniq" è uno strumento piuttosto unico offerto da Linux. Con così tante potenti funzionalità, può essere utile in tantissimi modi. Per l'elenco di tutte le bandiere e le relative spiegazioni consultare le pagine man e info di “uniq”.
uomo unico
informazioni uniche
Godere!