Jeśli grepuje plik zawierający następujące elementy:
These are words
These are words
These are words
These are words
... dla słowa These
, wypisze ciąg These are words
cztery razy.
Jak mogę zapobiec, aby grep drukował powtarzające się ciągi więcej niż raz? W przeciwnym razie, jak mogę manipulować wyjściem grep, aby usunąć zduplikowane linie?
command-line
bash
grep
Trae
źródło
źródło
Odpowiedzi:
Filozofią Uniksa jest posiadanie narzędzi, które wykonują jedną rzecz i robią je dobrze. W tym przypadku
grep
jest narzędziem, które zaznacza tekst z pliku. Aby dowiedzieć się, czy są duplikaty, sortuje się tekst. Aby usunąć duplikaty, można-u
skorzystać z opcjisort
. A zatem:sort
ma wiele opcji: patrzman sort
. Jeśli chcesz policzyć duplikaty lub mieć bardziej skomplikowany schemat określania, co jest duplikatem, a co nie, należy przesłać dane wyjściowe sortowania douniq
:grep These filename | sort | uniq
i zobaczyćman
opcje uniq`.źródło
Używanie
grep
i dodatkowy przełącznik, jeśli szukasz tylko jednego ciąguOd
man grep
lub za pomocą
awk
;)źródło