Jak sugeruje nazwa grep, wzorzec do wyszukania jest opisany za pomocą wyrażenia regularnego. Wyrażenie regularne to specjalny typ ciągu opisujący wzorzec do dopasowywania, lokalizowania i zarządzania. Aby dowiedzieć się więcej o grep i wyrażeniach regularnych, zapoznaj się z grep i egrep z wyrażeniem regularnym.
W celach demonstracyjnych pobierz przykładowy plik tekstowy. W tym przykładzie pobierz Powszechną Licencję Publiczną GNU v3.0 plik tekstowy.
Podstawowe szukanie
Podstawowym sposobem używania grep jest wyszukiwanie podstawowego ciągu.
Spójrz na następujące polecenie grep. W pliku tekstowym wyszuka słowo „GNU”.
$ grep "GNU" gpl-3.0.tekst
Aby wyświetlić numer linii, użyj flagi „-n”.
$ grep -n „GNU” gpl-3.0.tekst
Aby przeprowadzić wyszukiwanie bez rozróżniania wielkości liter za pomocą grep, użyj flagi „-i”.
$ grep -ni „gnu” gpl-3.0.tekst
Możesz nie chcieć widzieć dopasowań wyszukiwania, ale tylko nazwę pliku, w którym w niektórych sytuacjach doszło do dopasowania. Aby wydrukować tylko nazwę pliku, użyj flagi „-l”. Tutaj gwiazdka oznacza użycie wszystkich plików tekstowych w bieżącym katalogu.
$ grep -l “gnu” *
Możemy również przekazać wyjście innych poleceń do grep.
$ kot gpl-3.0.tekst | grep -n „GNU”
Wyrażenie regularne
Regex oferuje inteligentny sposób na precyzyjne dostrojenie wyszukiwania. Ma swoje własne zasady. Jednak różne aplikacje i języki programowania w różny sposób implementują wyrażenia regularne. Oto kilka przykładów, których możesz użyć z grep.
Aby określić, że ciąg ma znajdować się na początku wiersza, użyj symbolu karetki (^).
$ grep -n „^GNU” gpl-3.0.tekst
Aby określić, że ciąg ma znajdować się na końcu wiersza, użyj znaku dolara ($).
$ grep -n „do $” gpl-3.0.tekst
Aby opisać, że w określonym miejscu wzorca może znajdować się dowolny znak, użyj znaku kropki (.). Na przykład wyrażenie „G.U” obowiązuje, jeśli między „G” i „U” znajduje się jakikolwiek znak.
$ grep -n “G.U” gpl-3.0.tekst
Aby opisać, że w określonym miejscu wzorca może znajdować się podzbiór znaków, użyj nawiasów ([]). Na przykład wyrażenie „t[wo]o” mówi, że dopasowanie jest ważne tylko dla „dwóch” i „zbyt”.
$ grep -n „t[wo]o” gpl-3.0.tekst
Rozszerzone wyrażenie regularne
Jak sama nazwa wskazuje, rozszerzone wyrażenie regularne może robić bardziej złożone rzeczy niż podstawowe wyrażenia regularne. Aby użyć rozszerzonego wyrażenia regularnego z grep, musisz użyć flagi „-E”.
$ grep -nE Aby wyszukać dwa różne ciągi, użyj operatorów OR (|).
$ grep -nE “GNU|Ogólne|Licencja” gpl-3.0.tekst
Znajdowanie tekstu w plikach
Teraz nadchodzi główna część. Zamiast ręcznie nakazywać grepowi, aby plik wykonał wyszukiwanie, grep może to zrobić automatycznie. W poniższym poleceniu grep użyje wszystkich dostępnych plików tekstowych w bieżącym katalogu do wyszukania wzorca.
$ grep * Jeśli chcesz, aby grep wykonał wyszukiwanie w innym katalogu, musisz określić lokalizację.
$ grep
Jeśli istnieją foldery, grep domyślnie ich nie przegląda. Aby nakazać grepowi wyszukiwanie rekurencyjne, użyj flagi „-R”.
$ grep -nR
GUI Grepa
Jeśli wolisz pracować z graficznym interfejsem użytkownika, ale nadal chcesz korzystać z funkcji grep, sprawdź searchmonkey. To front-endowe rozwiązanie dla grep. Pakiet jest dostępny w prawie wszystkich głównych dystrybucjach Linuksa.
Znajdź tekst w plikach za pomocą nano
GNU Nano to prosty i potężny edytor tekstu, który jest dostarczany z każdą dystrybucją Linuksa. Posiada wbudowane funkcje wyszukiwania tekstu w pliku tekstowym.
Pamiętaj, że w tej metodzie musisz otworzyć plik tekstowy i wyszukać ręcznie. Jest to wykonalne, jeśli jest tylko kilka plików tekstowych do pracy. Jeśli jest ich więcej, to grep jest najbardziej optymalnym wyborem.
Otwórz plik tekstowy w nano.
$ nano
Aby wyszukać pasujący ciąg, naciśnij „Ctrl + W”. Po wpisaniu ciągu do wyszukania naciśnij „Enter”.
Znajdź tekst w plikach za pomocą Vim
Vim to znany i renomowany edytor tekstu. Jest to odpowiednik nowoczesnego edytora tekstu w wierszu poleceń. Vim ma wiele zaawansowanych funkcji, takich jak wtyczki, makra, autouzupełnianie, filtry itp.
Podobnie jak nano, Vim pracuje z jednym plikiem na raz. Jeśli masz wiele plików tekstowych, najbardziej optymalnym sposobem jest użycie grep.
Aby wyszukać w pliku tekstowym, najpierw otwórz go w Vim.
$ vim
Wpisz następujące polecenie Vima i naciśnij „Enter”.
$ :/
Znajdź tekst w plikach za pomocą edytora tekstu GNOME
Edytor tekstu GNOME to edytor tekstu dostarczany z pulpitem GNOME. To uproszczony edytor tekstu ze wszystkimi podstawowymi funkcjami, których można się spodziewać. To fajna alternatywa dla edytorów tekstu wiersza poleceń.
Podobnie jak w przypadku nano i vim, ta sama ostrożność dotyczy tej metody. Jeśli liczba plików tekstowych jest duża, lepiej trzymaj się grep.
Otwórz plik tekstowy w edytorze tekstu. Naciśnij „Ctrl + F”, aby wyświetlić pasek wyszukiwania.
Znajdź tekst w plikach za pomocą VS Code
Visual Studio Code to potężny edytor tekstu z mnóstwem funkcji. Jest zoptymalizowany dla programistów do używania tak, jakby był pełnoprawnym IDE. Jest dostępny w prawie wszystkich głównych dystrybucjach Linuksa.
Zainstaluj pakiet przystawek Visual Studio Code.
$ sudo snap kod instalacji --classic
Otwórz plik tekstowy w VS Code. Naciśnij „Ctrl + F”, aby rozpocząć wyszukiwanie.
Końcowe przemyślenia
Istnieje wiele sposobów wyszukiwania tekstu w plikach. To łatwe zadanie do opanowania. Zdecydowanie zaleca się opanowanie polecenia grep, ponieważ oferuje ono największą wartość pod względem wydajności i łatwości użytkowania.
Jeśli wolisz GUI, do wyboru jest wiele edytorów tekstu. Każdy nowoczesny edytor tekstu zapewni opcję wyszukiwania tekstu.
Udanych komputerów!