jaký je rozdíl mezi Grep, Egrep a Fgrep v Linuxu?

jedním z renomovaných vyhledávacích nástrojů na unixových systémech, který lze použít k vyhledávání všeho, ať už jde o soubor, řádek nebo více řádků v souboru, je nástroj grep. To je velmi obrovský ve funkčnosti, které lze přičíst velkému počtu možností, které podporuje, jako je: vyhledávání pomocí řetězce vzor, nebo reg-ex vzor nebo perl založené reg-ex atd.

Rozdíl Mezi grep, egrep a chování programu fgrep
Rozdíl Mezi grep, egrep a chování programu fgrep v Linuxu

Díky své různé funkce, a to má mnoho variant, včetně grep, egrep (Extended GREP), chování programu fgrep (Pevné GREP), pgrep (Procesu GREP), rgrep (Rekurzivní GREP) atd. Ale tyto varianty mají drobné rozdíly originální grep, který dělal je populární a používá různé Linuxové programátory pro zvláštní úkoly.

Hlavní věc, že je nutné prozkoumat, je to, co jsou rozdíly mezi tři hlavní varianty, tj. ‚grep‘, ‚egrep‘ a ‚, chování programu fgrep‘ grep, který umožňuje uživatelům Linuxu, vybrat jednu nebo druhou verzi dle požadavku.

některé speciální Meta znaky grep

  1. + – ekvivalentní jednomu nebo více výskytům předchozího znaku.
  2. ? – to znamená téměř 1 opakování předchozího znaku. Jako: a? by odpovídalo ‚a‘ nebo ‚aa‘.
  3. ( – začátek alternativního výrazu.
  4. ) – konec alternačního výrazu.
  5. | – shoda jednoho z výrazů oddělených '|'. Jako: "(a|b)cde” by odpovídalo buď ‚abcde‘ nebo ‚bbcde‘.
  6. { – tento meta-znak označuje začátek specifikátoru rozsahu. Jako: "a{2}” odpovídá “ aa “ v souboru, tj.
  7. }-tento meta-znak označuje specifikátor konce rozsahu.

rozdíly mezi grep, egrep a fgrep

některé hlavní rozdíly mezi grep, egrep a fgrep lze zvýraznit následovně. Pro tuto sadu příkladů předpokládáme soubor, na kterém se provádí operace:

Linux Příkaz grep
Linux Příkaz grep

Příkaz Grep

grep nebo Global Regular Expression Print je hlavní vyhledávací program na Unix-jako systémy, které mohou vyhledávání pro jakýkoliv typ string na soubor nebo seznam souborů, nebo dokonce výstup z příkazu.

doporučené čtení: 12 praktických příkladů příkazu Linux grep

používá jako vyhledávací vzor základní regulární výrazy kromě normálních řetězců. V základních regulárních výrazech (BRE), meta-znaky jako: '{','}''(',')''|''+''?' loose jejich význam a jsou zpracovávány jako běžné znaky, řetězce a musí být unikl, mají-li být zacházeno jako speciální znaky.

Doporučené Čtení: 11 Advance ‚Grep‘ Příkazy na Charakter Třídy a Držák Výrazy

Také, grep používá Boyer-Moore algoritmus pro rychlé vyhledávání libovolný řetězec nebo regulární výraz.

$ grep -C 0 '(f|g)ile' check_file$ grep -C 0 '\(f\|g\)ile' check_file
Linux grep Command Example
Linux grep Command Example

Like here, when the command is run without escaping '(' ')' and '|' then it searched for the complete string i.e. "(f|g)ile” in the file. Ale když speciální znaky jsou unikl, a pak místo toho, zacházet s nimi jako část řetězce, grep s nimi zacházeli jako meta-znaky a hledal slova "file” nebo "gile” do souboru.

Egrep příkaz

Egrep nebo grep-E je další verze grep nebo rozšířeného grep. Tato verze grep je efektivní a rychlý, když jde o hledání regulární výraz vzor, jak se chová meta-znaky, jako je, a nemá nahradit je jako řetězce stejně jako v grep, a proto jsou osvobozeni od břemene útěku je jako grep. Používá ERE nebo rozšířenou sadu regulárních výrazů.

v případě egrep, i když neuniknete meta-znakům, bude s nimi zacházet jako se speciálními znaky a nahradí je jejich zvláštním významem místo toho, aby je považoval za součást řetězce.

$ egrep -C 0 '(f|g)ile' check_file$ egrep -C 0 '\(f\|g\)ile' check_file
Linux Příkaz egrep Příklady
Linux Příkaz egrep Příklady

Jako tady, egrep hledal "file” string, kdy meta-znaky nebyly utekl jako to by znamenalo, že tím, že význam těchto znaků. Když však tyto znaky unikly, egrep je zpracoval jako součást řetězce a hledal v souboru kompletní řetězec "(f|g)ile”.

fgrep příkaz

Fgrep nebo fixní grep nebo grep-F je další verze grep, která je rychlá při vyhledávání, pokud jde o hledání celého řetězce místo regulárního výrazu, protože nerozpoznává regulární výrazy, ani žádné meta-znaky. Pro vyhledávání libovolného přímého řetězce je to verze grep, která by měla být vybrána.

fgrep hledá kompletní řetězec a ani nerozpozná speciální znaky jako součást regulárního výrazu, i když unikl nebo neunikl.

$ fgrep -C 0 '(f|g)ile' check_file$ fgrep -C 0 '\(f\|g\)ile' check_file
Linux, chování programu fgrep Příklady příkazů
Linux, chování programu fgrep Příklady příkazů

Jako, když meta-znaky nebyly utekl, chování programu fgrep hledali kompletní řetězec "(f|g)ile” do souboru, a když meta-znaky jsou unikl, pak, chování programu fgrep příkaz hledal "\(f\|g\)ile” všechny postavy, jak je v souboru.

již jsme se zabývali několika praktickými příklady příkazu grep můžete si je přečíst zde, pokud chcete získat více z příkazu grep v Linuxu.

Naučte se 12 praktických příkladů příkazu Linux grep

závěr

výše zvýrazněné jsou rozdíly mezi ‚grep‘, ‚egrep‘ a ‚fgrep‘. Kromě rozdílu v sadě použitých regulárních výrazů a rychlosti provádění zůstávají parametry příkazového řádku rest stejné pro všechny tři verze grep a dokonce místo „egrep“ nebo „fgrep“ se doporučuje použít „grep-E „nebo“ grep-F“.

Posted on

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.