Odpowiedzi:
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 kolejny test test [John @ awesome ~] $ echo -e "test \ ntest \ ntest \ nanother test \ ntest" | sortuj | uniq kolejny test test
w zależności od danych możesz również użyć niektórych przełączników.
sort -u
zamiast sort | uniq
. Oszczędza to proces, zmniejsza całkowitą liczbę operacji we / wy i zmniejsza całkowitą liczbę porównań, które należy wykonać.
Możesz użyć:
grep -rohP "(mySearchString)" . | sort -u
-r: rekurencyjny
-o: drukuj tylko pasującą część tekstu
-h: nie drukuj nazw plików
-P: Wyrażenia regularne w stylu Perla (zamiast tego można użyć opcji -E, w zależności od przypadku)
sort -u
jest lepsze niż sort | uniq
, jak zauważył @Chris Johnsen.
sort
wcześniejuniq
w przypadku, gdy dane nie zostaną zamówione. W przeciwnym razieuniq
nie zadziała całkowicie.