Polecenie Grep: potężne narzędzie do wyszukiwania tekstu z terminala

Polecenie Grep

Prawie każdy, kto ma komputer lub pracuje z nim, zna skrót klawiaturowy Ctrl + F, aby znaleźć tekst. Litera „F” oznacza „Znajdź”, czyli „znaleźć” w języku angielskim i może być używana na przykład do znajdowania tekstu na stronie internetowej. Ten skrót jest również dostępny w wielu aplikacjach, są programy, które używają „B” dla „wyszukiwania”, ale te skróty działają tylko wtedy, gdy jesteśmy w aplikacji i gdy plik jest otwarty. W Linuksie mamy bardzo potężne narzędzia, które możemy uruchomić z terminala i jeśli chcemy znajdź dowolny tekst, który jest w naszym zespole, użyjemy polecenia grep.

grep Jest to polecenie, które pomoże nam znaleźć tekst w wskazanym przez nas pliku. Jego nazwa pochodzi od g / re / p, polecenia, które działa na czymś podobnym w edytorze tekstu Unix / Linux. Podobnie jak wiele innych poleceń, grep Ma wiele dostępne opcje, które dodamy w formie listów i każdy będzie służył innemu zadaniu. Łącząc te opcje, będziemy mogli przeprowadzać złożone wyszukiwania w jednym lub wielu plikach. Tutaj pokażemy Ci wszystko, co musisz wiedzieć.

z grep znajdziemy dowolny tekst w dowolnym pliku

Przede wszystkim wyjaśnimy dostępne opcje:

  • -i: nie rozróżnia wielkich i małych liter.
  • -w: zmusić go do znalezienia tylko określonych słów.
  • -v: wybiera linie, które nie pasują.
  • -n: pokazuje numer wiersza z żądanymi słowami.
  • -h: usuwa przedrostek z nazwy pliku Uniksa w danych wyjściowych.
  • -r: przeszukuje katalogi rekurencyjnie.
  • -R: jak -r, ale podążaj za wszystkimi dowiązaniami symbolicznymi.
  • -l: pokazuje tylko nazwy plików z wybranymi liniami.
  • -c- Pokazuje tylko jedną liczbę wybranych wierszy na plik.
  • -Kolor: Wyświetla pasujące wzory w kolorach.

Na obrazie, który masz w tytule tego artykułu, szukałem słowa „Obrazy” w pliku „830.desktop”, który znajduje się w tej ścieżce. Jak widać, napisałem:

grep Imágenes /home/pablinux/Documentos/830.desktop

Pamiętaj, że w tym artykule napiszemy przykłady, które należy zmodyfikować zgodnie z naszymi preferencjami wyszukiwania. Kiedy mówimy „Plik”, „Słowo” itp., Będziemy odnosić się do pliku wraz ze ścieżką. Gdybym właśnie napisał „grep Images 830.desktop”, dostałbym komunikat informujący, że plik nie istnieje. A przynajmniej tak by było, gdyby plik nie znajdował się w katalogu głównym.

Inne przykłady to:

  • grep -i images /home/pablinux/Documentos/830.desktop, gdzie „obrazy” to słowo, które chcemy znaleźć, a reszta to plik ze ścieżką. W tym przykładzie wyszukano by „obrazy” w pliku „830.desktop” bez rozróżniania wielkości liter.
  • grep -R obrazy: przeszuka wszystkie wiersze katalogu i wszystkie jego podkatalogi, w których znajduje się słowo „obrazy”.
  • grep -c przykład test.txt: spowoduje to wyszukanie nas i wyświetlenie całkowitej liczby przypadków, w których „przykład” pojawia się w pliku o nazwie „test.txt”.

Z grep możemy również wyszukiwać pliki

Jeśli chcemy znaleźć plik 830.desktop, napiszemy następującą komendę:

grep 830.desktop

Spowoduje to wykonanie pliku wyszukaj plik «830.desktop» w naszym folderze osobistymInnymi słowy, jeśli plik znajduje się w folderze osobistym innego użytkownika, nie zostanie znaleziony. Jest to najbardziej normalna rzecz na świecie, ponieważ użytkownik nie ma pozwolenia na dostęp do treści innej osoby bez swojego hasła.

Jak przeprowadzać wyszukiwania rekurencyjne

grep to także nam pozwala przeprowadzać wyszukiwania według powtarzających się reguł lub wytycznych. Na przykład przeczytaj wszystkie pliki w każdym katalogu, które zawierają słowo „Pablinux”. W tym celu napiszemy:

grep -r Pablinux /home/

No cóż:

grep -R Pablinux /home/

Wyniki dla „Pablinux” zobaczymy w osobnej linii poprzedzonej nazwą pliku, w którym został znaleziony. Jeśli nie chcemy widzieć nazw plików w danych wyjściowych, użyjemy opcji -h (z "hide"; hide):

grep -h -R Pablinux /home/

Możemy połączyć opcje razem i napisać „-hR” bez cudzysłowów.

Jak wyszukiwać dokładne słowa

Czasami są pliki, które zawierają to, czego szukamy, coś innego. Na przykład może się to zdarzyć w przypadku słów złożonych, a wyszukując „lasy”, możemy znaleźć „strażnicy”. Jeśli chcemy znajdź dokładne słowo użyjemy opcji -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Powyższe polecenie wyszukałoby „lasy”, ignorując strażników, w pliku „wakacje.txt” we wskazanej ścieżce. Jeśli chcemy wyszukać dwa różne słowa, użyjemy polecenia egrep:

egrep -w bosques|plantas /ruta/del/archivo

Dowiedz się, ile razy słowo występuje w pliku

grep jest również w stanie policz, ile razy pojawia się słowo w pliku. W tym celu użyjemy opcji -c:

grep -c prueba /ruta/al/archivo

Dodanie opcji -n to, co zobaczymy, to numer wiersza, w którym występuje słowo.

Odwrotne wyszukiwania

Możemy też zrobić coś odwrotnego, czyli wyszukaj wiersze niezawierające słowa. W tym celu użyjemy opcji -v, która wyglądałaby następująco:

grep -v la ruta/al/archivo

Powyższe polecenie wyświetli wszystkie wiersze, które nie zawierały słowa „the”. Może się to przydać w dokumentach lub listach, w których słowo jest powtarzane wiele razy iz jakiegoś powodu musimy uzyskać dostęp do pozostałych wierszy.

Dostęp do informacji o systemie za pomocą grep

Model PC

grep potrafi nie tylko wyszukiwać w plikach. To jest również w stanie przeglądać informacje o systemie. Na poprzednim zrzucie ekranu możemy zobaczyć, jak pokazuje nam, jaki mamy model peceta (wiem, że nie jest to najpotężniejszy laptop na świecie). W tym celu użyliśmy polecenia:

cat /proc/cpuinfo | grep -i 'Model'

No cóż:

grep -i 'Model' /proc/cpuinfo

Jeśli chcemy zobaczyć nazwy jednostek dyskowych, napiszemy:

dmesg | egrep '(s|h)d[a-z]'

Jak wyświetlić tylko pasujące nazwy plików

Jeśli chcemy zobaczyć listę zawierającą tylko nazwy plików pasujących do wyszukiwania, użyjemy opcji -l, jak pokazano poniżej:

grep -l 'main' *.c

A jeśli chcemy zobaczyć słowo w kolorach, napiszemy:

grep --color palabra /ruta/al/archivo

Jak widać, polecenie grep to bardzo potężne narzędzie Warto to szczególnie w przypadkach, gdy nie pamiętamy, gdzie coś napisaliśmy lub w programowaniu. Dodatkowo pomaga nam w pozyskiwaniu informacji o systemie w sposób, który przypadnie do gustu miłośnikom Terminalu. Czy ten przewodnik dotyczący polecenia znajdowania tekstów był dla Ciebie przydatny? grep?


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   nordycki powiedział

    Witaj!
    Kiedy mówisz, że Grep jest również używany do wyszukiwania plików, nie sądzę, że jest to poprawne, ponieważ jeśli uruchomisz grep EXPRESSION i nie przekażesz do niego pliku, będzie czekał na wejście danych ze standardowego wejścia.
    Zgodnie ze stroną podręcznika:
    grep przeszukuje nazwane PLIKI wejściowe w poszukiwaniu wierszy zawierających dopasowanie do podanego WZORCA. Jeśli nie podano żadnych plików lub podano plik „-”, grep przeszukuje standardowe wejście.
    Dlatego możesz go używać w potokach, takich jak ten, który analizuje wyjście / proc / cpuinfo, przekazując wynik tego polecenia jako dane wejściowe do grepa, możesz przeprowadzić wyszukiwanie.
    pozdrowienia

  2.   Ana powiedział

    Bardzo dobry post.
    Wyjaśniasz to bardzo dobrze i od razu przechodzisz do rzeczy.