
Se sei un utente Linux e il tuo lavoro prevede l'utilizzo e la manipolazione di file di testo e stringhe, allora dovresti già avere familiarità con il comando uniq, poiché è più comunemente usato in quell'area.
Per coloro che non hanno familiarità con il comando uniq, è uno strumento da riga di comando che viene utilizzato per segnalare o omettere stringhe o righe ripetute. Questo fondamentalmente filtra le righe corrispondenti adiacenti da INPUT (o standard input) e scrive su OUTPUT (o standard output). Senza opzioni, le righe corrispondenti vengono unite alla prima occorrenza.
Di seguito sono riportati alcuni esempi di utilizzo del comando uniq
1) Ometti i duplicati
L'esecuzione dei comandi uniq senza specificare alcun parametro omette semplicemente i duplicati e visualizza un output di stringa univoco.
fluser@fvm:~/Documents/files$cat file1
Hello
Hello
How are you?
How are you?
Thank you
Thank you
fluser@fvm:~/Documents/files$ uniq file1
Hello
How are you?
Thank you
2) Visualizza il numero di righe ripetute
Con il parametro -c è possibile visualizzare il conteggio delle righe duplicate in un file
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
How are you?
How are you?
Thank you
Thank you
fluser@fvm:~/Documents/files$ uniq -c file1
2 Hello
2 How are you?
2 Thank you
3) Stampa solo i duplicati
Utilizzando il parametro -d, possiamo selezionare solo le righe che sono state duplicate all'interno di un file
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
Good morning
How are you?
How are you?
Thank you
Thank you
Bye
fluser@fvm:~/Documents/files$ uniq -d file1
Hello
How are you?
Thank you
4) Ignora maiuscole e minuscole durante il confronto
Normalmente quando si utilizza il comando uniq si prende in considerazione il caso delle lettere. Ma se vuoi ignorare il caso, puoi usare il parametro -i
fluser@fvm:~/Documents/files$ cat file1
Hello
hello
How are you?
How are you?
Thank you
thank you
fluser@fvm:~/Documents/files$ uniq file1
Hello
hello
How are you?
Thank you
thank you
fluser@fvm:~/Documents/files$ uniq -i file1
Hello
How are you?
Thank you
5) Stampa solo righe univoche
Se vuoi vedere solo le righe univoche in un file, puoi usare il parametro -u
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
Good morning
How are you?
How are you?
Thank you
Thank you
Bye
fluser@fvm:~/Documents/files$ uniq -u file1
Good morning
Bye
6) Ordina e trova i duplicati
A volte le voci duplicate possono contenere in posizioni diverse di un file. In tal caso, se utilizziamo semplicemente il comando uniq, non rileverà queste voci duplicate in righe diverse. In tal caso dobbiamo prima ordinare il file e poi possiamo trovare i duplicati
fluser@fvm:~/Documents/files$ cat file1
Adam
Sara
Frank
John
Ann
Matt
Harry
Ann
Frank
John
fluser@fvm:~/Documents/files$ sort file1 | uniq -c
1 Adam
2 Ann
2 Frank
1 Harry
2 John
1 Matt
1 Sara
7) Salva l'output in un altro file
L'output del nostro comando uniq può essere semplicemente salvato in un altro file come di seguito
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
How are you?
Good morning
Good morning
Thank you
fluser@fvm:~/Documents/files$ uniq -u file1
How are you?
Thank you
fluser@fvm:~/Documents/files$ uniq -u file1 output
fluser@fvm:~/Documents/files$ cat output
How are you?
Thank you
8) Ignora i caratteri
Per ignorare alcuni caratteri all'inizio puoi usare il parametro -s, ma devi specificare il numero di caratteri che devi ignorare
fluser@fvm:~/Documents/files$ cat file1
1apple
2apple
3pears
4banana
5banana
fluser@fvm:~/Documents/files$ uniq -s 1 file1
1apple
3pears
4banana
Se hai domande o pensieri da condividere su questo argomento, usa il modulo di feedback
Leggi anche:
- Come utilizzare il comando Linux Tr con esempi
- Una breve descrizione di 106 comandi Linux con esempi