Podstawowe filtrowanie za pomocą grepa

Jednym z poleceń, których najczęściej używam w terminalu, jest grep, nawet więcej niż cd o ls.

grep Ma wiele opcji i oferuje odmienne możliwości, jednak ja używam najbardziej konwencjonalnego możliwego sposobu, ale zacznijmy od wyjaśnienia Co to jest grep?

grep to po prostu filtr, to polecenie, które pokazuje wiersze pasujące do zadeklarowanego przez nas filtra.

Na przykład w naszym systemie mamy plik / usr / share / doc / bash / FAQ a zawartość tego pliku to:

Wyświetl zawartość pliku

Jeśli chcesz wyświetlić zawartość w terminalu za pomocą polecenia jak (tak kotku, jak kot hehe) mogą to zrobić:

cat /usr/share/doc/bash/FAQ

Załóżmy teraz, że chcemy wyświetlić tylko wiersz tego pliku, który mówi o wersji, w tym celu używamy grep:

cat /usr/share/doc/bash/FAQ | grep version

Umieszczenie tego w terminalu spowoduje wyświetlenie tylko linii zawierającej słowo „wersja” w tym pliku, ale nie będzie już pokazywać żadnej linii, która nie zawiera tego słowa.

A jeśli chcę pokazać wszystko oprócz wiersza wersji?

Innymi słowy, tak jak ci wyjaśniłem, wszystko co pasuje do filtra zostanie pokazane, teraz pokażę ci, jak sprawić, by wszystko się pojawiło z wyjątkiem co pasuje do filtra:

cat /usr/share/doc/bash/FAQ | grep -v version

Czy dostrzegasz różnicę? ... po prostu dodając -v to już robi różnicę 😀

Więc jeśli położyli grep pokaże tylko, co pasuje do filtra, ale jeśli umieścisz grep -v pokaże ci wszystko oprócz filtra.

Cóż, tutaj post się kończy, tylko kolejna wskazówka, że ​​teraz może mogą go umniejszyć, ale ... nie mają pojęcia, jak przydatne może być grep, to naprawdę ratuje życie 😀

pozdrowienia


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.   DMoZ powiedział

    Niewątpliwie bardzo wszechstronne polecenie, które raz nauczysz się sobie z nim radzić, ułatwi Ci życie =) ...

  2.   Skalibur powiedział

    Cześć! .. .. naprawdę bardzo przydatne polecenie .. w moim przypadku często go używam ..

    Prostym przykładem może być na przykład dpkg -l | grep 'pakiet' (w przypadku dystrybucji opartych na Debianie), warto wiedzieć, czy mamy zainstalowany ten pakiet.

    Wspaniale jest udostępniać te narzędzia całej naszej społeczności 😉

    1.    KZKG ^ Gaara powiedział

      Bardzo dziękuję 😀
      Rzeczywiście, grep jest tak potężny jak nasza wyobraźnia hahahaha, razem z awk (i cut) naprawdę osiągają cuda * - *

      Wkrótce podam jeszcze kilka wskazówek dotyczących pracy z terminalami 😉
      Pozdrawiam i dziękuję za komentarz.

      PS: Ciekawe Twój e-mail LOL !!

  3.   Heksborg powiedział

    Bardzo dobre!! Tak, z pewnością grep jest jednym z ratowników dla każdego, kto lubi korzystać z terminala. Tylko kilka uwag: naprawdę nie musisz w ogóle używać polecenia cat. Możesz umieścić nazwę pliku jako parametr grep w następujący sposób:

    wersja grep / usr / share / doc / bash / FAQ

    Ponadto, nawet gdyby się nie udało, zawsze byłaby opcja przekierowania danych wejściowych polecenia, wykonując coś takiego:

    wersja grep </ usr / share / doc / bash / FAQ

    To ostatnie można zrobić za pomocą dowolnego polecenia, więc nigdy nie jest konieczne używanie cat do wysyłania pliku na wejście polecenia.

    Użycie przekierowania zamiast cat powoduje, że powłoka uruchamia o jeden proces mniej, a tym samym zużywa mniej zasobów. Nie jest to zauważalna różnica, ale jest uważana za dobrą praktykę.

    Z drugiej strony grep staje się naprawdę przydatny przy korzystaniu z wyrażeń regularnych ... Gdybym chciał pomóc, tworząc post o wyrażeniach regularnych, co musiałbym zrobić? Czy wystarczy dodać nowy post z pulpitu WordPressa?

    1.    KZKG ^ Gaara powiedział

      Ciekawe, zawsze przyzwyczaiłem się do używania go z kotem HAHAHAHA, dzięki za wskazówkę 😀

      1.    Hugo powiedział

        Dzięki grep możesz również uczynić filtry nieco mniej podstawowymi, na przykład:

        grep -B3 -A3 -E -i --color=auto -n "(desde|hacia)?linux(\.)?$" ~/miarchivo.txt

        Zasadniczo pokazuje linie zawierające szukany termin (który może występować w dowolnej kombinacji wielkich i małych liter) plus trzy linie przed nim i trzy po nim, wyróżnia wyniki innym kolorem, umieszcza numery linii na wynikach i umożliwia włączenie rozszerzonych wyrażeń regularnych, które w tym przypadku pozwalają na wyszukiwanie w „myfile.txt” wszystkich linii kończących się na desdelinux, w stronę Linuksa lub zwykłego Linuksa (z punktem końcowym lub bez).

        Nawiasem mówiąc, wyrażenia regularne oferują dużą elastyczność i każdy dobry „geek” z pasją do wolnego oprogramowania powinien nauczyć się ich używać, hehe.

  4.   dragnell powiedział

    Możliwe jest również użycie zgrep dla tabletów w .ta.gz jest to bardzo przydatne, gdy chcemy przejrzeć stare logi. Twoje zdrowie

  5.   jhon powiedział

    Cześć. Dzięki za post. Zdarza mi się, że używając grep, słowo, które piszę w pojawiających się wierszach, nie zmienia koloru. (zwykle tak jest) [przykład: grep cat file.txt]
    pojawiają się linie i kot, ale kot nie przybiera określonego koloru, aby go odróżnić
    (w ccompus mojego uniwersytetu jest to widoczne)
    Czy wiesz, jak mogłem aktywować tę opcję?
    Proszę, jeśli możesz mi odpowiedzieć. mój email to sps-003@hotmail.com

    1.    fdy nb powiedział

      znajomy musi wpisać kota w cudzysłów 'kot' lub też "kot", a następnie nazwę pliku, w którym chce go znaleźć

  6.   enrique powiedział

    Witaj przyjacielu, masz całkowitą rację, masz duże poczucie użyteczności. Od teraz na mojej liście ulubionych poleceń umieszczam grep na pierwszym miejscu.
    pozdrowienia

  7.   skanjura powiedział

    A jak by to było pokazać pracowników przefiltrowanych według wynagrodzenia?