Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

uniq

Rispetto a sorta, l' uniq il programma è leggero. uniq Esegue un compito apparentemente banale. Quando riceve un file ordinato (o input standard), rimuove tutte le righe duplicate e invia i risultati allo standard output. Viene spesso utilizzato in combinazione con sorta per pulire l'output dai duplicati.


Immagine

Suggerimento: Mentre uniq è uno strumento Unix tradizionale spesso utilizzato con sorta, la versione GNU di sorta supporta a -u opzione, che rimuove i duplicati dall'output ordinato.


Immagine

Creiamo un file di testo per provarlo:



[io@linuxbox~]$ cat > foo.txt a

abcbc

[io@linuxbox~]$ cat > foo.txt a

abcbc


Ricordati di digitare Ctrl-d per terminare l'input standard. Ora, se eseguiamo uniq sul nostro file di testo:



[io@linuxbox~]$ uniq foo.txt

abc

[io@linuxbox~]$ uniq foo.txt

abc


i risultati non sono diversi dal nostro file originale; i duplicati non sono stati rimossi. Per

Per svolgere il suo lavoro, uniq deve prima ordinare l'input:


[io@linuxbox~]$ ordina foo.txt | uniq

abc

[io@linuxbox~]$ ordina foo.txt | uniq

abc


Questo è perché uniq rimuove solo le linee duplicate adiacenti tra loro.

uniq offre diverse opzioni. Ecco quelle più comuni:


Tabella 20-2: Opzioni uniq comuni


Opzione Descrizione

Opzione Descrizione

-c Restituisce un elenco di righe duplicate precedute dal numero di volte in cui la riga si verifica.


Immagine

-d Visualizza solo le righe ripetute, anziché quelle univoche.


Immagine

-f n ignorare n campi iniziali in ogni riga. I campi sono separati da spazi vuoti come in sorta; tuttavia, a differenza sorta, uniq non ha alcuna opzione per impostare un separatore di campo alternativo.


Immagine

-i Ignora la distinzione tra maiuscole e minuscole durante i confronti di riga.


Immagine

-s n Salta (ignora) l'inizio n caratteri di ogni riga.


Immagine

-u Visualizza solo le righe univoche. Le righe con duplicati vengono ignorate.


Immagine


Qui vediamo uniq utilizzato per segnalare il numero di duplicati trovati nel nostro file di testo, utilizzando il -c opzione:


[io@linuxbox~]$ ordina foo.txt | uniq -c

2 l'

2 b

2 c

[io@linuxbox~]$ ordina foo.txt | uniq -c

2 l'

2 b

2 c


Il miglior sistema operativo cloud computing su OnWorks: