Jaka jest różnica między GREP, EGREP i FGREP w Linux?
- 3253
- 0
- Maurycy Napierała
Jednym z uznanych narzędzie wyszukiwania w systemach podobnych do UNIX, których można użyć do wyszukiwania cokolwiek innego, czy jest to plik, czy linia, czy wiele wierszy w pliku, jest narzędzie GREP. Jest bardzo rozległy funkcjonalność, którą można przypisać dużej liczbie opcji, które obsługuje, takie jak: wyszukiwanie za pomocą wzorca stringowego, wzorca Reg-EX lub Reg-EX oparta na PERL itp.
Różnica między GREP, EGREP i FGREP w LinuxZe względu na różne funkcje ma wiele wariantów, w tym Grep, Egrep (Rozszerzony grep), FGREP (Naprawiono grep), pgrep (Proces GREP), RGREP (Rekurencyjny grep) itp. Ale te warianty mają niewielkie różnice w stosunku do oryginału Grep co sprawiło, że są popularne i są używane przez różnych programistów Linux do określonych zadań.
Główną rzeczą, którą pozostaje do zbadania, są różnice między trzema głównymi wariantami I.mi. „Grep”, „Egrep” I „FGREP” GREP, który sprawia, że użytkownicy Linux wybierają jedną lub drugą wersję zgodnie z wymaganiami.
Niektóre specjalne meta-właściciele Grep
+
- Równoważne jednemu lub więcej wystąpieniu poprzedniego charakteru.?
- Oznacza to prawie 1 powtórzenie poprzedniego charakteru. Tak jak:A?
Pasowałby 'A' Lub „aa”.(
- Początek wyrażenia naprzemienności.)
- Koniec wyrażenia naprzemiennej.|
- Dopasowanie jednego z wyrażeń oddzielonych przez'|' '
. Tak jak:„(A | B) CDE”
by się zgadza „Abcde” Lub „BBCDE”.- Ten meta-znak wskazuje na początek specyfikatora zasięgu. Tak jak:
„A 2”
mecze „AA” w pliku i.mi. 2 razy.- Ten meta-znak wskazuje na koniec specyfikatora zasięgu.
Różnice między GREP, EGREP i FGREP
Niektóre główne różnice między Grep, Egrep I FGREP Można podkreślić w następujący sposób. W przypadku tego zestawu przykładów zakładamy plik, w którym wykonywana jest operacja:
Polecenie Linux GrepPolecenie GREP
Grep Lub Globalny wydruk ekspresji regularnej jest głównym programem wyszukiwania w systemach podobnych do UNIX, które mogą wyszukiwać dowolny rodzaj ciągu w dowolnym pliku lub listy plików, a nawet wyjścia dowolnego polecenia.
Sugerowane przeczytanie: 12 Praktyczne przykłady polecenia Linux Grep
To używa Podstawowe wyrażenia regularne Oprócz normalnych ciągów jako wzorca wyszukiwania. W podstawowych wyrażeniach regularnych (BRE) meta-właściciele takie jak: „”, „”
,„(”, ')'
,'|' '
,„+”
,'?'
stracić swoje znaczenie i są traktowane jako zwykłe znaki sznurka i należy je uniknąć, jeśli mają być traktowane jako znaki specjalne.
Sugerowane przeczytanie: 11 Zaawansowanie poleceń „grep” na klasach postaci i wyrażeń nawigacyjnych
Grep używa również algorytmu Boyer-Moore do szybkiego wyszukiwania dowolnego sznurka lub wyrażenia regularnego.
$ grep -c 0 '(f | g) Ile' check_file $ grep -c 0 '\ (f \ | g \) Ile' check_filePrzykład polecenia Linux Grep
Jak tutaj, kiedy polecenie jest uruchamiane bez ucieczki „(”) ”
I '|' '
Następnie przeszukał pełny ciąg i.mi. „(F | g) Ile”
w pliku. Ale kiedy uciekli postacie specjalne, zamiast traktować je jako część sznurka, Grep traktował je jako meta-właściciele i szukał słów "plik"
Lub „Gile”
w pliku.
Polecenie egrep
Egrep Lub Grep -mi to kolejna wersja grep lub rozszerzonego grepa. Ta wersja GREP jest wydajna i szybka, jeśli chodzi o poszukiwanie wzorca wyrażenia regularnego, ponieważ traktuje meta-właściciele i nie zastępuje ich jako strunami jak w Grep, a zatem jesteś uwolniony od ciężaru ich ucieczki, tak w Grep. Używa ere lub rozszerzonego zestawu wyrażeń regularnych.
W przypadku Egrepa, nawet jeśli nie uciekniesz z meta-znaków, traktowałoby to jako postacie specjalne i zastąpiłby ich specjalne znaczenie, zamiast traktować je jako część ciągów.
$ egrep -c 0 '(f | g) Ile' check_file $ egrep -c 0 '\ (f \ | g \) Ile' check_filePrzykłady poleceń Linux Egrep
Jak tutaj, Egrep szukałem "plik"
ciąg, gdy meta-znakom nie uciekł, ponieważ oznaczałoby to znaczenie tych znaków. Ale kiedy te znaki zostały ucieknięte, Egrep potraktował je jako część String i szukał pełnego ciągu „(F | g) Ile”
w pliku.
Polecenie FGREP
FGREP albo Naprawiono grep Lub grep -f to kolejna wersja GREP, która jest szybka w wyszukiwaniu, jeśli chodzi o wyszukiwanie całego ciągu zamiast wyrażenia regularnego, ponieważ nie rozpoznaje wyrażeń regularnych, ani żadnych meta-znaków. W celu wyszukiwania dowolnego bezpośredniego ciągu jest to wersja GREP, którą należy wybrać.
FGREP przeszukuje pełny ciąg i nawet nie rozpoznaje znaków specjalnych jako części wyrażenia regularnego, nawet jeśli ucieknie lub nie ucieknie.
$ fgrep -c 0 '(f | g) Ile' check_file $ fgrep -c 0 '\ (f \ | g \) Ile' check_filePrzykłady poleceń FGrep Linux
Na przykład, gdy meta-znakom nie uciekł, FGREP szukał pełnego ciągu „(F | g) Ile”
w pliku i po ucieczce meta-znakom, następnie szukało polecenia FGREP „\ (F \ | g \) Ile”
Wszystkie znaki w pliku.
Omówiliśmy już kilka praktycznych przykładów polecenia GREP, możesz je przeczytać tutaj, jeśli chcesz uzyskać więcej z polecenia GREP w Linux.
Dowiedz się 12 praktycznych przykładów polecenia Linux Grep
Wniosek
Wyżej podświetlone są różnice między „Grep”, „Egrep” I „FGREP”. Oprócz różnicy w zestawie używanych wyrażeń regularnych i prędkości wykonania parametry wiersza poleceń REST pozostają takie same dla wszystkich trzech wersji GREP, a nawet zamiast „egrep” lub „fgrep”, „grep -e” lub „grep - F ”zaleca się stosowanie.
Jeśli znajdziesz inne różnice między tymi trzema wersjami GREP, wspomnij o nich w swoich komentarzach.
- « Jak zainstalować i skonfigurować LEMP na Debian 8 (Jessie)
- 11 Zaawansowane polecenia „Grep” Linux na klasach postaci i wyrażeniach wsporników »