Narzędzia użytkownika

Narzędzia witryny


polecenia:grep

grep

Wyszukiwanie wzorców w plikach

grep to potężne narzędzie w systemach Unix/Linux, służące do wyszukiwania wzorców tekstowych w plikach lub strumieniach danych. Nazwa grep pochodzi od polecenia edytora tekstu g/re/p, co oznacza globalnie wyszukaj wyrażenie regularne i wyświetl linie.

 

Składnia

grep [opcje] wzorzec [plik…]

Najważniejsze Opcje

  • -i, –ignore-case - Ignoruje wielkość liter podczas wyszukiwania.
  • -v, –invert-match - Zwraca linie, które nie pasują do wzorca.
  • -r, –recursive - Przeszukuje katalogi rekurencyjnie, przetwarzając wszystkie pliki w podkatalogach.
  • -l, –files-with-matches - Wyświetla tylko nazwy plików, które zawierają pasujące linie.
  • -n, –line-number - Wyświetla numery linii, w których znaleziono dopasowanie.
  • -H, –with-filename - Wyświetla nazwy plików przed każdą dopasowaną linią (przydatne przy przeszukiwaniu wielu plików).
  • -c, –count - Zlicza i wyświetla liczbę pasujących linii w każdym pliku.
  • -E, –extended-regexp - Umożliwia używanie rozszerzonych wyrażeń regularnych (równoważne z użyciem polecenia egrep).
  • -o, –only-matching - Wyświetla tylko tę część linii, która pasuje do wzorca.

Przykłady użycia

Podstawowe wyszukiwanie wzorca w pliku

Podstawowym zastosowaniem polecenia grep jest przeszukiwanie plików w poszukiwaniu określonego wzorca tekstowego. W najprostszej formie, polecenie to przyjmuje dwa argumenty: wzorzec, który chcesz znaleźć, oraz nazwę pliku, w którym chcesz dokonać wyszukiwania.

  • Składnia:

grep „wzorzec” plik.txt

W tym przypadku grep przeszuka plik plik.txt i zwróci wszystkie linie, które zawierają tekst zgodny z podanym wzorcem.

Przykład zastosowania

Załóżmy, że masz plik tekstowy o nazwie dokument.txt, który zawiera następujący tekst:

Ala ma kota.
Kot ma na imię Filemon.
Kot lubi spać na kanapie.
Pies biega za kotem.

Jeśli chcesz znaleźć wszystkie linie, w których występuje słowo kot, możesz użyć następującego polecenia:

  • Przykład polecenia:

grep „kot” dokument.txt

Wynik tego polecenia będzie wyglądał następująco:

Ala ma kota.
Pies biega za kotem.

Jak widać, grep zwrócił wszystkie linie, które zawierają wzorzec kot, niezależnie od tego, w którym miejscu w linii ten wzorzec się znajduje.

Uwagi dotyczące wyszukiwania

  • Dokładne dopasowanie:

grep wyszukuje dokładne dopasowania wzorca w pliku. W powyższym przykładzie, grep zwrócił linie zawierające kot, ale także te, gdzie kot jest częścią dłuższego słowa, jak kotem.

  • Uwzględnianie wielkości liter:

Wyszukiwanie w trybie domyślnym uwzględnia wielkość liter, co oznacza, że wzorzec Kot jest traktowany inaczej niż kot. Aby wyszukać wzorzec bez względu na wielkość liter, można użyć opcji -i:

grep -i „kot” dokument.txt

Wynikiem będzie wyszukanie wszystkich kotów, dużych i małych.

Ala ma kota.
Kot ma na imię Filemon.
Kot lubi spać na kanapie.
Pies biega za kotem.
  • Wielokrotne wystąpienia:

grep wyświetla wszystkie linie, w których występuje wzorzec, niezależnie od tego, ile razy wzorzec pojawia się w jednej linii.

Podstawowe wyszukiwanie wzorca w pliku za pomocą grep to narzędzie, które jest niezwykle przydatne przy analizie plików tekstowych, logów systemowych, a także przy przetwarzaniu danych w różnych formatach.

Aby wypisać wszystkie wystąpienia wzorca (np. słowa kot) w jednym wierszu, jeżeli pojawia się on więcej niż raz, można użyć polecenia grep w połączeniu z opcją -o, która wyświetla tylko dopasowane fragmenty. Przykład:

  • Wypisywanie wszystkich wystąpień wzorca z jednego wiersza

Jeśli w jednym wierszu pliku znajduje się więcej niż jedno wystąpienie wzorca, a chcesz wypisać każde z nich osobno, możesz użyć polecenia grep z opcją -o.

  • Składnia:

grep -o „wzorzec” plik.txt

W tym przypadku grep zwróci każde wystąpienie wzorca wzorzec w osobnej linii.

Przykład:

Załóżmy, że masz plik tekstowy o nazwie dokument.txt, który zawiera następujący tekst w jednym wierszu:

kot, kotek i jeszcze jeden kot.

Jeśli chcesz wypisać wszystkie wystąpienia słowa kot w tym wierszu, możesz użyć następującego polecenia:

  • Przykład polecenia:

grep -o „kot” dokument.txt

Wynik tego polecenia będzie wyglądał następująco:

kot
kot
kot

Każde wystąpienie słowa kot zostało wyświetlone w osobnej linii.

Uwagi

  • Każde wystąpienie:

Opcja -o powoduje, że grep zwraca każde wystąpienie wzorca w nowej linii, co pozwala zobaczyć dokładną liczbę wystąpień wzorca w danym wierszu.

  • Zastosowanie z innymi poleceniami:

Wynik można przekierować do innych poleceń, takich jak wc -l`, aby policzyć liczbę wystąpień wzorca:

grep -o „kot” dokument.txt | wc -l

To polecenie policzy, ile razy wzorzec „kot” występuje w pliku dokument.txt i zwróci liczbę wystąpień: 3.

Polecenie grep -o jest szczególnie przydatne, gdy chcesz dokładnie przeanalizować częstotliwość występowania danego wzorca w tekście lub gdy musisz przetwarzać dane, które mogą zawierać wiele wystąpień tego samego wzorca w jednej linii.

Ignorowanie wielkości liter podczas wyszukiwania

grep -i „wzorzec” plik.txt

Wyszukiwanie w wielu plikach jednocześnie

grep „wzorzec” plik1.txt plik2.txt

Rekurencyjne przeszukiwanie katalogu

grep -r „wzorzec” /sciezka/do/katalogu

Wyświetlenie tylko nazw plików zawierających wzorzec

grep -l „wzorzec” *.txt

Zliczenie liczby wystąpień wzorca w pliku

grep -c „wzorzec” plik.txt

Zaawansowane Zastosowania

  • Wyszukiwanie za pomocą wyrażeń regularnych:

grep -E „wzor[aeiou]c” plik.txt

*  **Wyszukiwanie odwrotne (linii niepasujących)**:
  ''grep -v "wzorzec" plik.txt''

*  **Wyszukiwanie i wyświetlanie tylko dopasowanych fragmentów linii**:
  ''grep -o "wzorzec" plik.txt''

Zastosowanie w Skryptach

grep jest niezwykle przydatnym narzędziem w skryptach powłoki (shell scripts) do filtrowania wyników, analizy logów, czy wyszukiwania specyficznych wzorców w dużych zbiorach danych. Dzięki możliwości przetwarzania wyrażeń regularnych, grep staje się wszechstronnym narzędziem do pracy z tekstem.

Podsumowanie

grep to jedno z najpotężniejszych narzędzi w arsenale każdego użytkownika Unix/Linux, umożliwiające szybkie i efektywne wyszukiwanie wzorców w plikach i strumieniach danych. Jego elastyczność i możliwość wykorzystania wyrażeń regularnych sprawiają, że jest niezastąpione zarówno w codziennej pracy z plikami tekstowymi, jak i w zaawansowanych zadaniach administracyjnych i programistycznych.

polecenia/grep.txt · ostatnio zmienione: przez tester