Jak wykluczyć słowo za pomocą grep
Spisu treści:
Narzędzie wiersza poleceń grep jest niezwykle przydatne do wyszukiwania w danych tekstowych wierszy i fragmentów pasujących do zdefiniowanego ciągu, znaku, słowa lub wyrażenia regularnego. Podczas gdy większość zastosowań grep służy do sortowania danych pod kątem dopasowań składniowych, co zrobić, jeśli zamiast tego chcesz wykluczyć słowo lub ciąg znaków za pomocą grep? Wykluczanie dopasowań wierszy za pomocą grep jest równie przydatne, jak znajdowanie i drukowanie dopasowań w grep, więc omówmy, jak wykluczać dopasowania ciągów i wykluczać słowa za pomocą grep.
Oczywiście będziesz potrzebować trochę doświadczenia z wierszem poleceń i znajomości grep, aby uznać to za przydatne. Jeśli chcesz śledzić dalej, możesz otworzyć aplikację Terminal i wypróbować ją samodzielnie. Ponieważ grep jest narzędziem niezależnym od systemu operacyjnego, możesz użyć sztuczki wykluczania w systemie Mac OS, Linux, unix lub czymkolwiek innym, co używa grep.
Jak wykluczyć pojedyncze słowo za pomocą grep
Najprostszym sposobem wykluczenia wierszy z pasującym łańcuchem lub składnią jest użycie grep i flagi -v.
Załóżmy na przykład, że używamy cat do drukowania pliku w wierszu poleceń, ale chcemy wykluczyć wszystkie wiersze zawierające termin „To słowo”, wtedy składnia wyglądałaby następująco:
kot przykład.txt | grep -v To Słowo"
Wyjściem będzie plik tekstowy example.txt, ale z wyłączeniem wszystkich wierszy zawierających łańcuch pasujący do „ThisWord”.
Możesz także używać grep bezpośrednio na plikach i wykluczać dopasowania wierszy na podstawie słów lub składni, na przykład:
"grep -v ThisWord>"
Użyj tego, co najlepiej sprawdza się w Twoim przepływie pracy.
Jak wykluczyć wiele ciągów lub słów za pomocą grep
Teraz, gdy już wiesz, jak wykluczać dopasowania dla pojedynczego słowa, następne oczywiste pytanie dotyczy wykluczania wielu słów za pomocą grep. Jest to równie proste i można to osiągnąć na kilka różnych sposobów, używając opcji -v oraz -e.
Najpierw weźmy powyższy przykład użycia cat na pliku potokowanym do grep i wykluczmy wszystkie linie pasujące do dwóch słów; „Słowo1” i „Słowo2”, wyglądałoby to następująco:
"kot przykład.txt | grep -v -e Słowo1 -e Słowo2"
Wszystkie wiersze zawierające „Słowo1” lub „Słowo2” zostaną wykluczone z wyników drukowania.
Możesz również użyć grep bezpośrednio na plikach, tak jak wcześniej:
"grep -v -e Word1 -e Word2 przykład.txt"
Innym podejściem jest oddzielenie elementów do wykluczenia za pomocą narzędzia grep przy użyciu potoku do oddzielenia każdego dopasowania, na przykład:
grep -Ev słowo1|słowo2 przykład.txt"
Jeśli przetestujesz którąkolwiek z tych opcji na przykładowym pliku tekstowym, przekonasz się, że dane wyjściowe są identyczne niezależnie od zastosowanego podejścia, z wyłączeniem wierszy zawierających docelowe frazy, składnię, słowa lub dopasowanie tekstu.
Świetnie, pokaż mi użyteczny przykład wykluczania danych za pomocą grep!
Dla praktycznego przykładu, który może okazać się pomocny dla zaawansowanych użytkowników komputerów Mac, możemy użyć wykluczenia grep podczas drukowania i przeszukiwania historii wiersza poleceń w celu znalezienia wcześniej wykonanych poleceń w celu znalezienia dopasowań wartości domyślnych, ale wykluczając niektóre wybrane ciągi znaków domyślnych z wyjście.
W tym przykładzie wydrukujemy historię poleceń dla domyślnych pasujących ciągów, ale wykluczymy wszystko, co ma związek z iTunes zgodnie z definicją „com.apple.itunes”:
"historia |grep defaults write |grep -v -e com.apple.itunes"
Więc jeśli podążasz dalej, to raportuje wszystkie historyczne wykonania polecenia „zapis domyślny”, ale z wyłączeniem wszystkiego, co dotyczyło aplikacji iTunes. Nieźle, co?
Jeśli znasz jakieś szczególnie przydatne sposoby wykluczania dopasowań za pomocą grep, podziel się nimi z nami w komentarzach poniżej! A jeśli podobał Ci się ten artykuł, prawie na pewno chciałbyś przejrzeć nasze liczne artykuły wiersza poleceń, w których można się dowiedzieć o wiele więcej!