egrep: eisimpleirean àithne ann an GNU / Linux

egrep

grep is e aon de na h-innealan as motha a chleachdar air loidhne-àithne GNU / Linux. A dh ’aindeoin a bhith na inneal gu math sìmplidh, leigidh e leat àireamh mhòr de dh’ obraichean a choileanadh. Tha e air a chleachdadh gu sònraichte còmhla ri pìoban, gus a bhith comasach air puingean sònraichte a lorg ann an toradh àithne roimhe, msaa. Ach tha inneal ann cuideachd ris an canar egrep a tha co-ionann ri bhith a ’ruith grep leis an roghainn -E.

Tha an e a ’tighinn bho“ Extended regex ”, agus is e sin a tha a’ gnìomhachadh an roghainn -E agus na tha agad ann an egrep gu bunaiteach gun a bhith a ’cleachdadh an roghainn sin. Is e sin, faodaidh tu an abairtean cunbhalach leudaichte. San oideachadh seo cha tèid mi a-steach a bhith a ’mìneachadh dè a th’ ann an abairtean cunbhalach, mar a ghabhas an cleachdadh agus dè na seòrsaichean a th ’ann an * nix. Seallaidh mi dìreach eisimpleirean practaigeach de chuid de rudan feumail as urrainn dhut a dhèanamh le egrep ...

tha grep, egrep, agus fgrep coltach ri chèile. Gu dearbh, tha egrep co-ionann ri grep -E agus tha fgrep co-ionann ri grep -F. Is e sin, anns a ’chùis a tha a’ dèanamh dragh dhuinn, mìnichidh e na pàtranan mar abairtean cunbhalach.

Faodaidh tu lorg loidhne no facal ann an aon fhaidhle no barrachd, mar a tha cuideachd le grep. Mar eisimpleir, is dòcha gu bheil thu airson am facal ubuntu a lorg ann am faidhle ris an canar snap.txt agus cuideachd anns a h-uile faidhle .txt anns an eòlaire gnàthach:

egrep ubuntu snap.txt

egrep ubuntu *.txt

Faodaidh sgrùdadh a bhith cuideachd ath-chuairteach Gus susbaint iomlan an eòlaire gnàthach a sgrùdadh:

egrep -r "hola mundo" *

Gu ruige seo, chaidh faclan no sreangan mionaideach a sgrùdadh, is e sin, a ’toirt aire do chùis àrd is ìosal (mothachail air cùis), ach ma tha thu airson a dhèanamh ann am modh cùis-neo-mhothachail, ge bith a bheil iad bun-os-cionn no litrichean beaga, faodaidh tu na leanas a chleachdadh (ma chuireas tu ris w chan eil e a ’faighinn ach maidsean coileanta):

egrep -i "ejemplo" documento.txt

egrep -iw "ejemplo" documento.txt

Dearbh, chan e na co-thursan, ach na h-ainmean faidhle far an deach na maidsean sin a lorg:

egrep -l hola *.txt

Na seall ach am pàtran no am facal air a sgrùdadh ann an sgrìobhainn:

egrep -o printf hola.c

Cuimhnich gun urrainn dhut a h-uile comas as urrainn dhut smaoineachadh a chleachdadh. Faodaidh tu grunn de na roghainnean a chaidh fhaicinn roimhe a chur còmhla, no faodaidh tu an cur còmhla ri roghainnean eile leithid -A n agus -B n, far a bheil n an àireamh de loidhnichean a tha thu airson sealltainn ro (Roimh) agus às deidh (Às deidh) den gheama no an dà chuid aig an aon àm (C), gus am faic thu na tha timcheall air a ’ghèam:

egrep -A 2 "printf" hola.c

egrep -B 2 "printf" hola.c

egrep -C 2 printf hola.c

Cuir às do loidhnichean anns a bheil maids agus na seall ach an fheadhainn nach eil a ’maidseadh:

egrep -v "dos" números.doc

No mas fheàrr leat, faodaidh tu a chleachdadh iomadach facal no maids le -e. Mar eisimpleir:

egrep -v -e "uno" -e "dos" -e "tres" números.txt

Ma chleachdas tu -c chan urrainn ach àireamh nan geamannan a chunntadh, no cuir thairis e le -v gus an àireamh de loidhnichean mì-chothromach a nochdadh. Mar eisimpleir:

egrep -c "include" main.c

egrep -v -c "include" main.c

Agus eadhon seall àireamh loidhne far an do thachair an geam, agus cuideachd an suidheachadh anns a bheil e:

egrep -n "void" hola.c

egrep -o -b "printf" hola.c

Agus còmhla ris an abairtean cunbhalach faodar na comasan aige a leudachadh. Mar eisimpleir, lorg loidhne a tha a ’tòiseachadh le Hello agus a’ crìochnachadh le beannachd, no a tha a ’tòiseachadh le Hello air a leantainn le ge bith dè a th’ ann agus an uairsin bidh an t-sitheann a ’nochdadh fa leth:

* Ceartachadh na h-àithne a leanas: le taing do bheachd an leughadair Manuel Alcocer fhuair mi air an àithne a leanas atharrachadh, oir bha mearachd ann.

egrep '^Hola.*adiós$' ejemplo.txt

egrep "Hola.*adiós" ejemplo.txt

Ach ma tha thu a ’faighneachd mun eadar-dhealachadh le grep, seo eisimpleir a nì e soilleir dhut ... A thaobh a bhith a’ cleachdadh grep às aonais -E bu chòir dhut an sreathan teicheadh gus am bi e a ’mìneachadh nan caractaran sònraichte mar sin, air dhòigh eile bhiodh e a’ mìneachadh a ’phàtrain mar sin gun a bhith a’ toirt aire dhaibh. Air an làimh eile, le egrep no grep -E bheir e aire dhaibh. Mar eisimpleir:
grep '^no\(fork\|group\)' /etc/group

Bhiodh sin co-ionann ri:

grep -E '^no(fork|group)' /etc/group
egrep '^no(fork|group)' /etc/group

Is e sin, bhiodh e a ’coimhead airson na loidhnichean maidsidh a tha a’ tòiseachadh le nofork no nogroup. Ach nam biodh tu a ’cleachdadh a’ chiad abairt aig grep às aonais na sreathan teicheadh, is e na dhèanadh e sgrùdadh am pàtran cruadhtan no (forc | buidheann):

grep 'no(fork|group)' /etc/group

Faodaidh tu cuideachd sgrùdadh a dhèanamh raointean alphanumeric, no luachan sònraichte, leithid lorg IPan sònraichte:
cat /etc/networks | egrep "192.168.1.[5-9]"
cat /etc/networks | egrep "192.168.[1-3].[5-9]"
cat /etc/networks | egrep "192.168.1.[0-3]|[5-9]"
egrep 192.168.4.[10,40] networks

Mas fheàrr leat, faodaidh tu abairtean cunbhalach eile a chleachdadh gus rannsachaidhean nas sònraichte a dhèanamh. Mar eisimpleir | gus fear a lorg co-thuiteamas no an taobh eile:

egrep -i '^(printf|scanf)' hola.c

Faodaidh tu eadhon lorg uppercase, litrichean beaga, caractaran aibideil a-mhàin, no alphanumeric, msaa., a ’cleachdadh abairtean eile leithid: [: alnum:], [: alpha:], [: digit:], [: lower:], [: print:], [: punct:], [: space:], [ : àrd:], etc. Mar eisimpleir, airson lorg uppercase:
egrep [[:upper:]] diccioario

Tha mi an dòchas gun cuidich e thu ... A dh'aithghearr mìnichidh mi abairtean cunbhalach ann an artaigil a tha gu sònraichte air a shon ...


Tha susbaint an artaigil a ’cumail ri na prionnsapalan againn de moraltachd deasachaidh. Gus aithris a dhèanamh air mearachd cliog an seo.

5 bheachd, fàg do chuid fhèin

Fàg do bheachd

Seòladh-d cha tèid fhoillseachadh.

*

*

  1. Uallach airson an dàta: Miguel Ángel Gatón
  2. Adhbhar an dàta: Smachd air SPAM, riaghladh bheachdan.
  3. Dìleab: Do chead
  4. Conaltradh an dàta: Cha tèid an dàta a thoirt do threas phàrtaidhean ach a-mhàin fo dhleastanas laghail.
  5. Stòradh dàta: Stòr-dàta air a chumail le Occentus Networks (EU)
  6. Còraichean: Aig àm sam bith faodaidh tu am fiosrachadh agad a chuingealachadh, fhaighinn air ais agus a dhubhadh às.

  1.   Ìomhaigh neach-àite Manuel Alcocer thuirt

    Feasgar math

    Beagan bheachdan ...

    Tha thu a ’mìneachadh an àithne‘ egrep ’ach na cuir an diofar eadar‘ egrep ’agus‘ grep ’, a bu chòir a bhith mar a tha e an seo.

    Mar eisimpleir:
    Le grep: ip -4 a | grep '[0-9] \ +'
    Le egrep: ip -4 a | egrep '[0-9] +'

    Ahh, agus tha seo ceàrr, ‘egrep“ Halo. * Bye ”example.txt’; tha an soirbheachadh an seo a ’tachairt nuair a tha loidhne anns an fhaidhle anns a bheil an sreang‘ Hello ’agus ge bith dè a th’ ann agus le ‘beannachd’, faodaidh an loidhne tòiseachadh agus crìochnachadh le ge bith dè a th ’ann.

    Is e seo a tha an artaigil ag ràdh:
    egrep '^ Halò. * bye $' example.txt

    Agus tha na roghainnean uile, no cha mhòr a h-uile gin (cha stad mi airson a sgrùdadh), nan roghainnean de ‘grep’ chan ann de ‘egrep’ a-mhàin.

    Fìor mhath.

    1.    Isaac thuirt

      Taing airson aithris air a ’mhearachd sin. Na tha thu a ’toirt iomradh air na h-abairtean cunbhalach, chuir mi e san dàrna paragraf mu thràth. Bheir mi artaigil sònraichte dhaibh, oir tha mòran ann agus bheireadh an artaigil seo ro fhada. Beannachd!

      1.    Ìomhaigh neach-àite Manuel Alcocer thuirt

        Halo a-rithist, Isaac.

        Anns an dàrna paragraf tha thu ag ràdh gu bunaiteach, no bu chòir dhut a ràdh, gu bheil ‘egrep’ mar ailias de ‘grep -E’, ach chan eil thu a ’toirt seachad eisimpleir sam bith de bhith a’ cleachdadh ‘egrep’ le beagan faireachdainn cunbhalach a tha sgrìobhte ann an dòigh eadar-dhealaichte seach cuin air a chleachdadh le ‘grep’.

        Tha coisrigeadh artaigil airson a bhith a ’mìneachadh abairtean cunbhalach leudaichte a’ coimhead duilich dhomh, am measg rudan eile leis gu bheil làraich mar seo ann nach eil a ’sanasachd agus a tha a’ dèanamh obair fiosrachaidh glè chudromach do choimhearsnachd GNU: https://www.rexegg.com/

        Chan eil mi a ’sgrìobhadh an seo airson trolling, is e mo rùn leis a h-uile càil seo ma leughas cuideigin an inntrigeadh seo gus faicinn dè a tha‘ egrep ’no‘ grep ’a’ dèanamh, thoir sùil air stòran eile, chan urrainn don inntrigeadh seo a bhith na iomradh air rud sam bith, tha e a ’mìneachadh beag, dona, a ’tabhann fiosrachadh neo-shoilleir agus faodaidh e a bhith troimh-chèile, gu sònraichte dhaibhsan aig nach eil eòlas sam bith air GNU agus na h-innealan cumhachdach a tha e a’ tabhann.

        Mu dheireadh, tha thu air na mialan a chomharraich mi a chuir ris agus a shocrachadh às deidh mo chiad bheachd (^ $). Mar ann an làraichean eile, bu chòir dhut a bhith air an neach a rinn an ceartachadh, no co-dhiù a ràdh gur e ceartachadh a th ’ann, tha sin na phàirt de bhunait GNU, an aon bhunait leis an deach am blog seo a thòiseachadh agus a chaidh air chall.

        Tapadh leibh.

        1.    Isaac thuirt

          Tapadh leibh airson do bheachd.

  2.   fsafs thuirt

    ffff