2010-02-21 02:41:41 +0000 2010-02-21 02:41:41 +0000
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?

Odpowiedzi (2)

132
132
132
2010-02-21 02:52:47 +0000

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.

3
3
3
2019-08-22 21:13:48 +0000

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.