79
79
Jak mogę odfiltrować unikalne wyniki z wyjścia grepa?
W linuxie, mogę grepować ciąg znaków z pliku używając grep mySearchString myFile.txt
. Jak mogę uzyskać tylko te wyniki, które są unikalne?
W linuxie, mogę grepować ciąg znaków z pliku używając grep mySearchString myFile.txt
. Jak mogę uzyskać tylko te wyniki, które są unikalne?
Możesz to osiągnąć za pomocą narzędzi sort
i uniq
.
przykład:
[john@awesome ~]$ echo -e "test\ntest\ntest\nanother test\ntest" test test test another test test [john@awesome ~]$ echo -e "test\ntest\ntest\nanother test\ntest" | sort | uniq another test test
w zależności od danych możesz chcieć wykorzystać również niektóre z przełączników.
Możesz użyć:
grep -rohP "(mySearchString)" . | sort -u
-r: rekurencyjne
-o: drukuj tylko pasującą część tekstu
-h: nie drukuj nazw plików
-P: regex w stylu Perla (możesz użyć -E zamiast tego w zależności od przypadku)
sort -u
jest lepsze niż sort | uniq
, jak zauważył @Chris Johnsen.