Linux: Bash: uniq – unikalne czy nieunikalne czy co…?

17-Paź-2021

Jest sobie w shellu polecenie uniq. Zgodnie z opisem w man:

Wydawałoby się więc, że przesłanie wyniku polecenia, które generuje jakieś tam wiersze danych, powinno zwrócić tylko unikalne dane. Np.

zwraca informacje o skonfigurowanych shellach dla kilku początkowych użytkowników z pliku /etc/passwd. (Screen poniżej)

Kiedy prześlemy dane do uniq, to wydaje sie, że wynikiem powinny być unikalne shelle:

Jednak tak nie jest. Dlaczego? Wystarczy zajrzeć do man-a ponownie, a tam stoi jak byk:

kluczowe słowo to „adjacent” – 2 linijki zostaną potraktowane jako dublujące się, gdy stoją obok siebie. Jeśli między nimi jest jakaś inna linijka, to uniq nie usunie powtarzającej się kopii, no chyba że…. użyjesz opcji -u:

Wszystko to widać ładnie na obrazku poniżej:

 

Dodaj komentarz:

Autor: Rafał Kraik