Kedu ihe dị iche n'etiti Grep, Egrep na Fgrep na Linux?


Otu n'ime ngwa ọchụchọ ama ama na sistemụ Unix nke enwere ike iji chọọ ihe ọ bụla ma ọ bụ faịlụ, ma ọ bụ ahịrị ma ọ bụ ọtụtụ ahịrị na faịlụ bụ grep utility. Ọ na-arụ ọrụ nke ukwuu nke enwere ike ịsị na ọnụ ọgụgụ dị ukwuu nke nhọrọ ọ na-akwado dị ka: ịchọ site na iji ụkpụrụ eriri, ma ọ bụ ụkpụrụ reg-ex ma ọ bụ perl dabeere reg-ex wdg.

N'ihi ọrụ ya dịgasị iche iche, ọ nwere ọtụtụ variants gụnyere grep, egrep (Extended GREP), fgrep (Fixed GREP), pgrep (Process GREP), rgrep (Recursive GREP) wdg. ewu ewu yana ndị mmemme Linux dị iche iche ga-eji maka ọrụ ụfọdụ.

Isi ihe a ka ga-enyocha bụ ihe dị iche n'etiti isi atọ dị iche iche ya bụ 'grep', 'egrep' na 'fgrep' nke grep nke na-eme ka ndị ọrụ Linux họrọ otu ma ọ bụ nke ọzọ dịka achọrọ.

Ụfọdụ meta-agwa grep pụrụ iche

  1. + - Dakọtara na otu ihe omume ma ọ bụ karịa nke mkpụrụedemede gara aga.
  2. ? - Nke a na-egosi ihe fọrọ nke nta ka ọ bụrụ otu ugboro ugboro nke agwa gara aga. Dị ka: a? ga-adaba 'a' ma ọ bụ 'aa'.
  3. ( – Malite okwu ọzọ.
  4. ) - Ọgwụgwụ okwu ọzọ.
  5. | - Dakọtara nke ọ bụla n'ime okwu | kewapụrụ. Dị ka: \(a|b)cde ga-adaba 'abcde' ma ọ bụ 'bbcde'.
  6. { - Akara meta a na-egosi mmalite nke nkọwapụta oke. Dị ka: \a{2} dakọtara \aa na faịlụ ya bụ ugboro abụọ.
  7. } – Àgwà atọ a na-egosi njedebe nke nkọwapụta.

Ọdịiche dị n'etiti grep, egrep na fgrep

Enwere ike ime ka ụfọdụ ọdịiche dị n'etiti grep, egrep na fgrep pụta ìhè dị ka ndị a. Maka ihe atụ a, anyị na-eche na faịlụ a na-arụ ọrụ ka ọ bụrụ:

grep ma ọ bụ Global Regular Expression Print bụ isi ihe omume ọchụchọ na sistemụ Unix dị ka nke nwere ike ịchọ ụdị eriri ọ bụla na faịlụ ọ bụla ma ọ bụ ndepụta faịlụ ma ọ bụ ọbụna mmepụta nke iwu ọ bụla.

Ọ na-eji okwu Basic Regular Ewezuga na eriri nkịtị dị ka ụkpụrụ ọchụchọ. Na Basic Regular Expressions (BRE), meta-mkpụrụedemede dị ka: {,}, (,), |, +,? tọhapụrụ ihe ha pụtara ma na-ewere ya dị ka mkpụrụedemede nkịtị nke eriri na ọ dị mkpa ka agbanarị ya ma ọ bụrụ na a ga-ewere ha dị ka mkpụrụedemede pụrụ iche.

Ọzọkwa, grep na-eji Boyer-Moore algọridim maka ịchọ ngwa ngwa ọ bụla eriri ma ọ bụ okwu ọ bụla.

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

Dị ka ebe a, mgbe iwu a na-agba ọsọ na-agbanarịghị ( ) na | wee chọọ eriri zuru ezu ya bụ \(f|g) ile na faịlụ. Mana mgbe agbanarị mkpụrụedemede pụrụ iche, mgbe ahụ kama iwere ha dị ka akụkụ nke eriri, grep were ha dị ka mkpụrụedemede meta wee chọọ mkpụrụokwu \file ma ọ bụ \gile na faịlụ.

Egrep ma ọ bụ grep -E bụ ụdị ọzọ nke grep ma ọ bụ Extended grep. Ụdị grep a na-arụ ọrụ nke ọma na ngwa ngwa ma a bịa n'ịchọ usoro okwu mgbe niile ka ọ na-emeso mkpụrụedemede meta dị ka ọ dị ma ọ dịghị edochi ha dị ka eriri dị ka grep, ya mere ị na-enwere onwe gị pụọ na ibu nke ịgbanarị ha dị ka. na grep. Ọ na-eji ERE ma ọ bụ agbatịkwu nkwupụta oge niile.

N'ihe banyere egrep, ọ bụrụgodị na ị gbanarị mkpụrụedemede meta, ọ ga-ewere ha dị ka mkpụrụedemede pụrụ iche ma dochie ha maka ihe pụrụ iche pụtara kama ịme ha dịka akụkụ nke eriri.

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

Dị ka ebe a, egrep chọrọ eriri \file mgbe mkpụrụedemede meta-agbanaghị agbanarị dịka ọ ga-apụta n'ihe mkpụrụedemede ndị a pụtara. akụkụ nke eriri wee chọọ eriri \(f|g) ile na faịlụ ahụ.

Fgrep ma ọ bụ Fixed grep ma ọ bụ grep -F bụ ụdị ọzọ nke grep nke na-adị ngwa ngwa n'ịchọ ma a bịa n'ịchọ eriri dum kama ikwu okwu mgbe niile ka ọ na-amataghị okwu oge niile, ma ọ bụ meta-agwa. Maka ịchọ eriri ọ bụla kpọmkwem, nke a bụ ụdị grep nke a ga-ahọrọ.

Fgrep na-achọ eriri zuru oke na ọ naghị amata mkpụrụedemede pụrụ iche dịka akụkụ nke nkwupụta oge niile ọbụlagodi na agbanarị ma ọ bụ na agbapụghị.

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

Dị ka, mgbe meta-mkpụrụedemede na-agbanarịghị, fgrep na-achọ eriri zuru ezu \(f|g) ile na faịlụ ahụ, na mgbe meta-mkpụrụedemede agbanarị, mgbe ahụ fgrep iwu chọrọ. maka \\(f\|g\)ile mkpụrụ edemede niile dịka ọ dị na faịlụ ahụ.

Anyị ekpuchilarị ụfọdụ ihe atụ bara uru nke iwu grep ị nwere ike ịgụ ha ebe a, ma ọ bụrụ na ịchọrọ inwetakwu ihe na iwu grep na Linux.

Mmechi

N'elu nke akọwapụtara bụ ọdịiche dị n'etiti 'grep', 'egrep' na 'fgrep'. Ewezuga ihe dị iche na nhazi nke okwu ndị a na-ejikarị eme ihe, yana ọsọ nke mmezu, usoro ahịrị iwu izu ike ka dị otu maka ụdị atọ nke grep na ọbụna kama ịbụ \egrep ma ọ bụ \fgrep, \grep -E ma ọ bụ \grep -F ka akwadoro ka e jiri ya mee ihe.

Ọ bụrụ na ịchọta ọdịiche ọ bụla n'etiti ụdị grep atọ ndị a, kpọtụrụ ha na nkwupụta gị.