uniq
- uniq – narzędzie usuwające duplikaty wierszy, które występują bezpośrednio po sobie w danych.
- Często używane w połączeniu z
sort
, aby uzyskać unikalne wiersze z danych. - Dostępne w większości dystrybucji Linuksa (GNU coreutils) oraz w systemach UNIX.
Składnia
Dział zatytułowany „Składnia”uniq [opcje] [PLIK_WE] [PLIK_WY]
- Bez podania plików działa na standardowym wejściu i wyjściu.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-c , --count | Poprzedza każdy wiersz liczbą jego powtórzeń. |
-d , --repeated | Wypisuje tylko wiersze powtarzające się. |
-D | Wypisuje wszystkie powtarzające się wiersze (nie tylko jeden egzemplarz). |
-u , --unique | Wypisuje tylko wiersze unikalne (bez powtórzeń). |
-i , --ignore-case | Ignoruje wielkość liter przy porównywaniu. |
-f N | Pomija pierwsze N pól przy porównywaniu. |
-s N | Pomija pierwsze N znaków przy porównywaniu. |
-w N | Porównuje maksymalnie N znaków w wierszu. |
--help | Wyświetla pomoc. |
--version | Wyświetla wersję programu. |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1) Usunięcie duplikatów w pliku (kolejne identyczne wiersze)uniq dane.txt > dane_unikalne.txt
# 2) Liczenie wystąpień każdego wierszauniq -c dane.txt
# 3) Tylko powtarzające się wierszeuniq -d dane.txt
# 4) Unikalne wiersze bez względu na wielkość literuniq -i dane.txt
# 5) Usunięcie wszystkich duplikatów niezależnie od położeniasort dane.txt | uniq
uniq
usuwa tylko sąsiadujące duplikaty – aby usunąć wszystkie powtarzające się wiersze, dane należy wcześniej posortować.- Parametry
-f
,-s
i-w
można łączyć, aby precyzyjniej określać porównywany fragment wiersza. - Polecenie jest szybkie i wydajne, szczególnie przy dużych zbiorach danych.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
Wynik zawiera nieusunięte duplikaty | Duplikaty nie sąsiadują ze sobą. | Posortuj dane przed użyciem uniq . |
uniq: command not found | Brak programu w systemie. | Zainstaluj pakiet coreutils. |
Nieoczekiwane różnice wielkości liter | Brak użycia opcji -i . | Dodaj -i dla porównania bez uwzględniania wielkości liter. |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man uniq – oficjalna dokumentacja.
- GNU coreutils – uniq invocation – opis opcji.