Drukowanie unikalnych linii za pomocą uniq, OS X Yosemite

0

Próbuję wydrukować unikalne wpisy w kolumnie .csvpliku. W tym celu próbowałem:

awk -F "," '{print $6}' dataCoarse.csv | uniq -u

który po prostu drukuje szóstą kolumnę taką, jaka jest. Wciąż są zduplikowane wpisy. Jak mogę wydrukować tylko unikalne linie?

Edycja: Myślę, że muszę usunąć puste spacje poprzedzające lub kończące dowolny znak w każdej linii lub w uniqjakiś sposób je zignorować. Jak mogę to zrobić?

Azotan sodu
źródło
próbowałeś w / o -u?
Romeo Ninov
Tak, myślę, że to nie ma znaczenia. Myślę, że niektóre linie mają na końcu dodatkowy znak spacji, co powoduje, że porównanie jest nieprawidłowe.
azotan sodu
Więc usuń ten znak, coś takiego (przed uniq) może wykonać pracę: sed 's / $ //'. Lub rozbierz go w awk
Romeo Ninov
Usunąłem wszystkie puste miejsca, sed 's/ //'ale nadal widzi dwa identyczne wpisy jako unikalne i drukuje osobno.
azotan sodu
spróbuj zrzucić je za pomocą polecenia od -ax, aby sprawdzić wartości szesnastkowe
Romeo Ninov

Odpowiedzi:

1

Też miałem ten problem! Sprawdź to rozwiązanie podobnego problemu. Zasadniczo chcesz najpierw przesłać dane do potoku sort, ponieważ uniqliczy tylko kolejne wystąpienia danych jako duplikaty.

awk -F "," '{print $6}' dataCoarse.csv | sort -u powinien dać ci wynik, którego szukasz.

Alex Chojnacki
źródło
jeszcze lepsze sortowanie -u posortuje i da wynik uniq.
Archemar
Masz rację! Zapomniałem o tym. Edytowane według Twojej sugestii.
Alex Chojnacki