mi a különbség a grep, az Egrep és az fgrep között Linuxban?

az egyik neves kereső eszköz Unix-szerű rendszerek, amelyek segítségével keresni semmit, hogy ez egy fájl, vagy egy sor vagy több sor fájl grep utility. Ez nagyon hatalmas a funkcionalitás, amely annak tulajdonítható, hogy a nagy számú lehetőség támogatja, mint például: keresés segítségével string minta, vagy reg-ex minta vagy perl alapú reg-ex stb.

különbség a grep, egrep és fgrep között
különbség a grep, egrep és fgrep között Linux alatt

a különböző funkciói miatt számos változata van, beleértve grep, egrep (kiterjesztett grep), fgrep (rögzített grep), pgrep (folyamat grep), rgrep (rekurzív grep) stb. De ezeknek a változatoknak kisebb különbségeik vannak az eredeti grep-hez képest, ami népszerűvé tette őket, és a különböző Linux programozók bizonyos feladatokhoz használják őket.

a legfontosabb dolog, amit még meg kell vizsgálni, hogy mi a különbség a három fő változat között, azaz a grep ‘grep’, ‘egrep’ és ‘fgrep’ között, ami miatt a Linux felhasználók az egyik vagy a másik verziót választják a követelménynek megfelelően.

A grep néhány speciális Meta-karaktere

  1. + – egyenértékű az előző karakter egy vagy több előfordulásával.
  2. ? – ez az előző karakter majdnem 1 ismétlését jelöli. Mint: a? megfelelne az ” A “vagy az” aa ” – nak.
  3. ( – A váltakozó kifejezés kezdete.
  4. ) – a váltakozási kifejezés vége.
  5. | – A '|' által elválasztott kifejezés bármelyikének illesztése. Mint: "(a|b)cde” az “abcde” vagy a “bbcde”.
  6. { – ez a meta-karakter a tartománymeghatározó kezdetét jelzi. Mint: "a{2}” megegyezik az “aa” fájlban, azaz a 2-szer.
  7. } – ez a meta-karakter a tartomány végét jelzi.

A grep, az egrep és az fgrep közötti különbségek

a grep, az egrep és az fgrep közötti főbb különbségek az alábbiak szerint emelhetők ki. Ehhez a példakészlethez azt a fájlt feltételezzük, amelyen a műveletet végrehajtják:

Linux grep parancs
Linux grep parancs

Grep parancs

a grep vagy a globális reguláris kifejezés nyomtatása a fő keresési program Unix-szerű rendszereken amely bármilyen típusú karakterláncot kereshet bármilyen fájlban vagy fájllistában, vagy akár bármilyen parancs kimenetén.

javasolt olvasmány: 12 gyakorlati példa a Linux grep parancsra

a normál karakterláncokon kívül alapvető reguláris kifejezéseket használ Keresési mintaként. Alap reguláris kifejezések (BRE), meta-karakterek, mint: '{','}''(',')''|''+''?'

javasolt olvasmány: 11 Advance’ Grep ‘ parancsok Karakterosztályokra és zárójel kifejezésekre

a grep Boyer-Moore algoritmust is használ Bármely karakterlánc vagy reguláris kifejezés gyors keresésére.

$ 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. De amikor a speciális karakterek megszöktek, akkor ahelyett, hogy a karakterlánc részeként kezelte volna őket, grep meta-karakterként kezelte őket, és a "file” vagy "gile” szavakat kereste a fájlban.

Egrep parancs

az Egrep vagy a grep-e a grep vagy a kiterjesztett grep egy másik változata. A grep ezen verziója hatékony és gyors, amikor reguláris kifejezési mintát keres, mivel a meta-karaktereket úgy kezeli, ahogy van, és nem helyettesíti őket karakterláncként, mint a grep-ben, és így megszabadul a menekülés terhétől, mint a grep-ben. Használja ERE vagy a kiterjesztett reguláris kifejezés készlet.

az egrep esetében, még akkor is, ha nem kerüljük el a meta-karaktereket, speciális karakterként kezelné őket, és helyettesítené őket a különleges jelentésükkel, ahelyett, hogy a karakterlánc részeként kezelné őket.

$ egrep -C 0 '(f|g)ile' check_file$ egrep -C 0 '\(f\|g\)ile' check_file
Linux egrep parancs példák
Linux egrep parancs példák

mint itt, egrep keresett "file” karakterlánc, amikor a meta-karakterek nem kerülték el, mivel ez azt jelenti, értelmében ezeket a karaktereket. De amikor ezek a karakterek megszöktek, akkor az egrep a string részeként kezelte őket, és a fájlban a "(f|g)ile” teljes karakterláncot kereste.

fgrep parancs

az Fgrep vagy a rögzített grep vagy grep-F a grep egy másik változata, amely gyorsan keres, amikor a teljes karakterláncot keresi a reguláris kifejezés helyett, mivel nem ismeri fel a reguláris kifejezéseket, sem meta-karaktereket. Bármely közvetlen karakterlánc kereséséhez ez a grep verziója, amelyet ki kell választani.

az Fgrep teljes karakterláncot keres, és még a speciális karaktereket sem ismeri fel a reguláris kifejezés részeként, még akkor sem, ha megszökött vagy nem menekült el.

$ fgrep -C 0 '(f|g)ile' check_file$ fgrep -C 0 '\(f\|g\)ile' check_file
Linux fgrep parancs példák
Linux fgrep parancs példák

mint, amikor a meta-karakterek nem menekültek el, az fgrep a fájlban a "(f|g)ile” teljes karakterláncot kereste, és amikor a meta-karakterek megszöktek, akkor az fgrep parancs a "\(f\|g\)ile” minden karaktert keresett a fájlban.

már ismertettünk néhány gyakorlati példát a grep parancsról, itt olvashatja el őket, ha többet szeretne kihozni a grep parancsból Linuxban.

Tanulj meg 12 gyakorlati példát a Linux grep parancsra

következtetés

fent kiemelve a ‘grep’, ‘egrep’ és ‘fgrep’közötti különbségeket. A használt reguláris kifejezések halmazának különbségén és a végrehajtás sebességén kívül a rest parancssori paraméterek változatlanok maradnak a grep mindhárom változatánál, és még az “egrep” vagy “fgrep”, “grep-E” vagy “grep-F” helyett is ajánlott használni.

Posted on

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.