logo

Polecenie Grep w systemie Linux/Unix z przykładami

Polecenie „grep” oznacza „globalny wydruk wyrażeń regularnych” . Polecenie grep filtruje zawartość pliku, co ułatwia wyszukiwanie.

Jest to narzędzie wiersza poleceń umożliwiające przeszukiwanie grup danych w postaci zwykłego tekstu w poszukiwaniu wierszy identycznych z wyrażeniem regularnym. Imię 'chwyt' pochodzi od polecenia, tj. ed, które zawiera ten sam efekt. Pierwotnie grep został zaprojektowany dla systemu operacyjnego Unix, ale później stał się dostępny dla każdego systemu uniksowego i kilku innych, takich jak OS 9.

Filtr grep znajduje plik dla określonego wzorca znaków i wyświetla każdą linię zawierającą ten wzorzec. Znaki należy ująć w cudzysłów, jeśli występują w parametrze wzorca mającym specjalne znaczenie dla powłoki. Zwykle musimy ująć cały wzorzec w jeden cudzysłów, jeśli parametr wzorca nie jest wspólnym ciągiem znaków.

W wyrażeniach takich jak [a-z] znak minus (-) cml opisuje zakres oparty na bieżącej kolejności zestawiania. Kolejność zestawiania może określać równoważne klasy w zakresach znaków do użycia. Polecenie grep zakłada stdin, gdy nie są wymienione żadne pliki.

niezmienna lista

Wzorzec nazywa się wyrażeniem regularnym znajdującym się w pliku. Wzorzec to ograniczone wyrażenia regularne w formacie polecenia egrep lub ed. Polecenie grep stosuje solidny, niedeterministyczny algorytm. Przydaje się, gdy musimy filtrować duże pliki dziennika.

Krótka historia grep

Zanim otrzymał nazwę, grep był poufnym narzędziem określonym przez Kena Thompsona aby znaleźć pliki dla kilku wzorców. Nieznany o swoim istnieniu, Douga Mcllroya poprosił Thompsona o określenie takiej funkcji. Odpowiadając, że z dnia na dzień pomyśli o takim narzędziu. Thompson wprowadzał ulepszenia i poprawiał torfowiska przez około godzinę w swoim programie znanym jako 'S' (lub wyszukaj). Następnego dnia przedstawił tę funkcję Mcllroyowi, który stwierdził, że jest taka, jak chciał. Relacja Thompsona może opisywać przekonanie, że polecenie grep zostało wydane z dnia na dzień.

Thompson określił do obsługi początkową wersję w języku asemblera PDP-11 Lee E. McMohana sprawdzenie tekstu Federalist Papers w celu ustalenia autorstwa poszczególnych artykułów. Edytor tekstu ed obsługiwał wyrażenia regularne, ale nie można go było używać w przypadku tak dużego tekstu; Thompson skopiował ten kod do samodzielnego narzędzia. Imię wybrał ze względu na wyd.; polecenie grep wydrukuje każdą linię tak samo, jak opisany wzorzec. Po pierwsze, grep został dodany w wersji 4 Uniksa, mówiąc to „jest powszechnie wymieniany jako prototypowe narzędzie programowe” , Mcllroy zatwierdził grep z „nieodwołalnie zakorzeniony” filozofia narzędzi Thompsona w systemie Unix.

Implementacje grep

Szereg implementacji grep jest obecny w kilku środowiskach programistycznych i systemach operacyjnych. Wczesne wersje obejmowały fgrep i egrep, wprowadzone w 7. wersji Uniksa. Wersja egrep obsługuje składnię rozszerzonego wyrażenia regularnego zawartego przez Alfreda Aho po oryginalnej implementacji wyrażeń regularnych autorstwa Kena Thompsona. Wersja fgrep znajduje dowolną listę stałych ciągów z rozszerzeniem Algorytm dopasowywania ciągów Aho-Corasicka . Te wersje binarne są dostępne w nowoczesnych systemach, łącząc się z grep lub wywołując grep za pomocą skryptu powłoki przy użyciu poprawnej flagi dodanej podczas ogólnego wdrażania w systemach POSIX.

Inne polecenia obejmują 'chwyt' słowo do reprezentowania, znajdują narzędzia, zwykle zależne od dopasowań wyrażeń regularnych. Na przykład użyteczność, tj. „pgrep” , pokazuje procesy, których tytuły są takie same, jak podane wyrażenie regularne.

  • Grep to tytuł wbudowanej funkcji wyszukującej elementy na liście posiadające określoną właściwość w Perł język programowania.
  • Zwykle wywoływana jest ta funkcja wyższego rzędu 'filtr' Lub 'Gdzie' w innym języku.
  • Polecenie, tj. pcregrep , to implementacja grep, która wykorzystuje składnię wyrażeń regularnych Perla. Tę samą funkcjonalność można dodać do wersji grep GNU za pomocą flagi -P.
  • Również porty grep (np GnuWin32 I Cygwina ) wykonać w systemie Microsoft Windows. Kilka wersji systemu Windows udostępnia to samo polecenie findstr lub qgrep.
  • Ponadto polecenie grep jest częścią narzędzi MSX-DOS2 ASCII dla drugiej wersji MSX-DOS.
  • Komendy fgrep, egrep i grep zostały dostarczone do systemu operacyjnego IBM i.
    Oprogramowanie Adobe InDesign ma funkcje GREP (od wersji CS3) w oknie dialogowym zmiany/znajdź karty „GREP” i określone przy użyciu CS4 w „Style GREP” style akapitów.

Jak zainstalować grep w systemie Linux?

Grep jest preinstalowany w prawie każdej dystrybucji Linuksa. Jednakże na wszelki wypadek możemy go zainstalować za pomocą poniższego polecenia w oknie terminala, jeśli brakuje go w naszym systemie:

 $ sudo apt-get install grep 

grep z potokiem

Polecenie „grep” jest zwykle używane z potokiem (|) .

Składnia:

 command | grep 

Przykład:

 cat marks.txt | grep 9 

Filtry Grep w systemie Linux1

Spójrz na powyższą migawkę, polecenie grep filtruje wszystkie dane zawierające „9”.

nazwa produktów do makijażu

grep bez potoku

Można go używać również bez rury.

Składnia:

lateksowy symbol częściowej pochodnej
 grep 

Przykład:

 grep 9 marks.txt 

Filtry Grep w systemie Linux2

Spójrz na powyższą migawkę, polecenie grep wykonuje tę samą pracę, co wcześniejszy przykład, ale bez potoku.

opcje grepa

    grep -vM: Polecenie 'grep -v' wyświetla linie niepasujące do podanego słowa.

    Składnia:

     grep -v 

    Przykład:

     grep -v 9 marks.txt 

    Filtry Grep w systemie Linux3

    Spójrz na powyższą migawkę, polecenie „grep -v 9 znaków.txt” wyświetla linie, które nie zawierają wyszukiwanego przez nas słowa „9”.

    grep -tj: Polecenie „grep -i” filtruje dane wyjściowe w sposób nieuwzględniający wielkości liter.

    Składnia:

     grep -i 

    Przykład:

     grep -i red exm.txt 

    Filtry Grep w systemie Linux4

    Spójrz na powyższą migawkę, polecenie „grep -i czerwony exm.txt” wyświetla wszystkie linie zawierające słowo „czerwony” zarówno wielkimi, jak i małymi literami.

    grep -A/ grep -B/ grep -C

    grep - Polecenie służy do wyświetlania linia po wyniku .

    Zastępowanie metody w Javie

    Polecenie grep -B służy do wyświetlania linia przed wynikiem .

    Polecenie grep -C służy do wyświetlania pliku linia po i linia przed wynik.

    Możesz użyć (A1, A2, A3.....)(B1, B2, B3...)(C1, C2, C3.....) aby wyświetlić dowolną liczbę linii.

    Składnia:

     grep -A grep -B grep -C 

    Przykład:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Filtry Grep w systemie Linux5

    Spójrz na powyższą migawkę, polecenie „grep -A1 żółty exm.txt” wyświetla przeszukiwaną linię z następną linią, polecenie „grep -B1 żółty exm.txt” wyświetla przeszukiwaną linię z jedną poprzedzającą linią i poleceniem „grep -C1 żółty exm.txt” wyświetla przeszukiwaną linię z jedną linią poprzedzającą i następną.