Comanda uniq (unique) este o altă unealtă folositoare pentru manipularea și afișarea textului.
Să spunem că avem un fișier cu o mulțime de dubluri:
biblioteca.txt
carte
carte
ziar
ziar
articol
articol
revista
Și ați vrea să ștergeți toate dublurile. Ei bine, puteți folosi comanda uniq pentru această operație:
$ uniq biblioteca.txt
carte
ziar
articol
revista
Acum haideți să numărăm câte dubluri există pentru fiecare termen:
$ uniq -c biblioteca.txt
2 carte
2 ziar
2 articol
1 revista
Putem extrage chiar și numai valorile unice din acel fișier:
$ uniq -u biblioteca.txt
magazine
Vicerversa putem afișa numai cuvintele care au dubluri:
$ uniq -d biblioteca.txt
carte
ziar
articol
Atenție : uniq nu detectează liniile doar daca acestea sunt adiacente (una lângă alta). De ex.:
Să presupunem ca aveți un fișier cu dubluri care nu sunt adiacente:
biblioteca.txt
carte
ziar
carte
ziar
articol
revista
articol
$ uniq biblioteca.txt
biblioteca.txt
carte
ziar
carte
ziar
articol
revista
articol
Rezultatul returnat de comanda uniq va conține toate intrările spre deosebire de primul exemplu.
Pentru a remedia această limitare a comenzii uniq putem folosi comanda sort în combinație cu uniq:
$ sort biblioteca.txt | uniq
articol
carte
revista
ziar
Exerciții
Ce rezultat obțineți dacă încercați comanda uniq -uc?