Kini Iyato Laarin Grep, Egrep ati Fgrep ni Lainos?


Ọkan ninu irinṣẹ wiwa olokiki lori awọn eto irufẹ Unix eyiti o le lo lati wa ohunkohun boya o jẹ faili kan, tabi laini tabi awọn ila pupọ ninu faili jẹ iwulo grep. O jẹ pupọ julọ ninu iṣẹ ṣiṣe eyiti o le sọ si nọmba nla ti awọn aṣayan ti o ṣe atilẹyin bii: wiwa ni lilo ọna okun, tabi ilana reg-ex tabi per-based reg-ex ati bẹbẹ lọ.

Nitori awọn iṣẹ ṣiṣe rẹ ti o yatọ, o ni ọpọlọpọ awọn iyatọ pẹlu grep, egrep (GREP ti o gbooro), fgrep (GREP ti o wa titi), pgrep (Ilana GREP), rgrep (GursP Recursive) ati bẹbẹ lọ Ṣugbọn awọn iyatọ wọnyi ni awọn iyatọ kekere si ọra atilẹba eyiti o ti ṣe wọn gbajumọ ati lati lo nipasẹ ọpọlọpọ awọn olutọsọna Linux fun awọn iṣẹ-ṣiṣe kan pato.

Ohun akọkọ ti o ku lati ṣe iwadii ni kini awọn iyatọ laarin awọn iyatọ akọkọ mẹta ie 'grep', 'egrep' ati 'fgrep' ti grep ti o jẹ ki awọn olumulo Linux yan ọkan tabi ẹya miiran bi fun ibeere.

Diẹ ninu Awọn lẹta Meta Pataki ti grep

  1. + - Dọgba si awọn iṣẹlẹ ọkan tabi diẹ sii ti kikọ tẹlẹ.
  2. ? - Eyi tọka fere atunwi 1 ti ohun kikọ tẹlẹ. Bii: a? Yoo baamu 'a' tabi 'aa'.
  3. ( - Ibẹrẹ ikosile iyatọ.
  4. ) - Opin ikosile iyatọ.
  5. | - Tuntun boya ti ikosile niya nipasẹ | . Bii: \"(a | b) cde" yoo baamu boya 'abcde' tabi 'bbcde'.
  6. { - Meta-ohun kikọ tọkasi ibẹrẹ ti onimọran ibiti. Bii: \"a {2}" awọn ibaramu\"aa" ni faili bii igba meji 2.
  7. } - Meta-ohun kikọ tọkasi opin ibiti o ti n ṣalaye ibiti.

Awọn iyatọ Laarin grep, egrep ati fgrep

Diẹ ninu awọn iyatọ akọkọ laarin grep, egrep ati fgrep le ṣe afihan bi atẹle. Fun apẹrẹ awọn apẹẹrẹ yii a gba faili lori eyiti iṣẹ ṣiṣe ti wa ni:

grep tabi Ifihan Ifihan deede ti Agbaye jẹ eto iṣawari akọkọ lori awọn eto irufẹ Unix eyiti o le wa iru eyikeyi okun lori eyikeyi faili tabi atokọ ti awọn faili tabi paapaa iṣiṣẹ ti eyikeyi aṣẹ.

O nlo Awọn ifihan Deede Ipilẹ yato si awọn okun deede bi apẹẹrẹ wiwa kan. Ninu Awọn Ifọrọhan Deede Ipilẹ (BRE), awọn ohun kikọ mẹta bii: {,} , (,) , | , + , ? tu itumọ wọn jẹ ki wọn ṣe itọju bi awọn ohun kikọ deede ti okun ati pe o nilo lati salọ ti wọn ba le ṣe tọju wọn bi awọn kikọ pataki.

Pẹlupẹlu, grep nlo algorithm Boyer-Moore fun wiwa ni iyara eyikeyi okun tabi ikosile deede.

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

Bii nibi, nigbati aṣẹ ba n ṣiṣẹ laisi abayo () ati | lẹhinna o wa okun pipe ie \"(f | g) ile” ninu faili naa. Ṣugbọn nigbati awọn ohun kikọ pataki ba salọ, lẹhinna dipo toju wọn gẹgẹ bi apakan okun, grep ṣe itọju wọn bi awọn ohun kikọ mẹta ati wa awọn ọrọ \"faili" tabi \"gile" ninu faili naa.

Egrep tabi grep -E jẹ ẹya miiran ti ọra tabi Ifaagun ti o gbooro sii. Ẹya grep yii jẹ daradara ati iyara nigbati o ba wa ni wiwa ilana ikosile deede bi o ṣe tọju awọn ohun kikọ mẹta bi o ṣe jẹ ati pe kii ṣe aropo wọn bi awọn gbolohun ọrọ ni ọra, ati nitorinaa o ti ni ominira kuro ninu ẹrù ti sa fun wọn bi ni grep. O nlo ERE tabi Eto Ifarahan Ipele Gbooro.

Ni ọran ti egrep, paapaa ti o ko ba sa fun awọn ohun kikọ mẹta, yoo tọju wọn bi awọn kikọ pataki ati rọpo wọn fun itumọ pataki wọn dipo ti tọju wọn gẹgẹ bi apakan okun.

$ egrep -C 0 '(f|g)ile' check_file
$ egrep -C 0 '\(f\|g\)ile' check_file

Bii nibi, egrep wa okun \"faili" nigbati awọn meta-kikọ ko ba salọ bi yoo ṣe tumọ si itumọ awọn kikọ wọnyi. Ṣugbọn, nigbati awọn kikọ wọnyi ba salọ, lẹhinna egrep tọju wọn bi apakan okun o si wa okun pipe \"(f | g) ile” ninu faili naa.

Fgrep tabi Ti o wa titi grep tabi grep -F jẹ ẹya miiran ti grep eyiti o yara ni wiwa nigbati o ba wa lati wa gbogbo okun dipo ikosile deede bi ko ṣe da awọn ifihan deede, bẹẹni eyikeyi awọn ohun kikọ mẹta. Fun wiwa eyikeyi okun taara, eyi ni ẹya ti grep eyiti o yẹ ki o yan.

Fgrep wa wiwa okun pipe ati paapaa ko ṣe idanimọ awọn ohun kikọ pataki bi apakan ti ikosile deede paapaa ti o ba salọ tabi ko sa asaala.

$ fgrep -C 0 '(f|g)ile' check_file
$ fgrep -C 0 '\(f\|g\)ile' check_file

Bii, nigbati awọn ohun kikọ mẹta ko ba salọ, fgrep wa okun pipe \"(f | g) ile” ninu faili naa, ati pe nigba ti awọn lẹta mẹta salọ, lẹhinna aṣẹ fgrep wa fun \"\ (f\| g \) ile” gbogbo awọn kikọ bi o ti wa ninu faili naa.

A ti ṣaju diẹ ninu awọn apẹẹrẹ iṣe ti aṣẹ grep o le ka wọn nibi, ti o ba fẹ gba diẹ sii lati aṣẹ grep ni Linux.

Ipari

Loke afihan ni awọn iyatọ laarin 'grep', 'egrep' ati 'fgrep'. Yato si iyatọ ninu ṣeto awọn ifihan deede ti a lo, ati iyara ipaniyan, awọn aye laini pipaṣẹ isinmi wa kanna fun gbogbo awọn ẹya mẹta ti grep ati paapaa dipo\"egrep" tabi\"fgrep",\"grep -E" tabi\"grep -F" ni iṣeduro lati ṣee lo.

Ti o ba wa awọn iyatọ miiran laarin awọn ẹya mẹta ti grep, ma darukọ wọn ninu awọn asọye rẹ.


Gbogbo awọn Ẹtọ wa ni ipamọ. © Linux-Console.net • 2019-2024