egrep: Beispiller vum Kommando am GNU / Linux

egrep

grep et ass ee vun de meescht benotzte Tools op der GNU / Linux Kommandozeil. Trotz engem ganz einfachen Tool, erlaabt et Iech eng grouss Unzuel vun Operatiounen ze maachen. Et gëtt besonnesch a Verbindung mat Päifen benotzt, fir spezifesch Punkten am Output vun engem fréiere Kommando ze lokaliséieren, etc. Awer et ass och en Tool bekannt als egrep dat ass gläichwäerteg mat GreP mat der -E Optioun.

Den e kënnt vun "Extended Regex", dat ass wat d'-E Optioun aktivéiert a wat Dir am egrep hutt, ouni dës Optioun ze benotzen. Dat ass, Dir kënnt de erweidert regulär Ausdréck. An dësem Tutorial ginn ech net an d'Erklärung wat regulär Ausdréck sinn, wéi se kënne benotzt ginn a wéi eng Zorten am * nix sinn. Ech weisen just praktesch Beispiller vun e puer nëtzlech Saachen déi Dir maache kënnt mat egrep ...

grep, egrep a fgrep sinn ähnlech. Tatsächlech ass egrep gläichwäerteg mat grep -E an fgrep ass gläichwäerteg mat grep -F. Dat ass, am Fall wou eis betrëfft, interpretéiert et och d'Muster als regelméisseg Ausdréck.

Dir kënnt Sich no enger Zeil oder e Wuert an enger oder méi Dateien, wéi och de Fall mat grep ass. Stellt Iech zum Beispill vir, Dir wëllt d'Wuert ubuntu an enger Datei mam Numm snap.txt sichen an och an allen .txt Dateien am aktuelle Verzeechnes:

egrep ubuntu snap.txt

egrep ubuntu *.txt

Sich kann och sinn rekursiv Fir de ganzen Inhalt vum aktuellen Verzeechnes ze sichen:

egrep -r "hola mundo" *

Bis elo goufe genau Wierder oder Sträicher gesicht, dat heescht, mat uewen- a klenggeschriwwene Rechter (case-sensitive), awer wann Dir et am Fall-onempfindleche Modus maache wëllt, egal ob se grouss oder kleng Buschtawen sinn, Dir kënnt déi folgend benotzen (wann Dir w füügt fënnt et nëmme komplett Matcher):

egrep -i "ejemplo" documento.txt

egrep -iw "ejemplo" documento.txt

Weisen, net d'Zufäll, awer d'Fichiernimm wou dës Matcher fonnt goufen:

egrep -l hola *.txt

Weist nëmmen d'Muster oder d'Wuert an engem Dokument gesicht:

egrep -o printf hola.c

Denkt drun datt Dir all d'Méiglechkeeten benotze kënnt déi Dir Iech virstelle kënnt. Dir kënnt e puer vun den Optiounen gesinn, déi virdru gesi goufen, oder Dir kënnt se mat aner Optiounen ergänzen wéi -A n a -B n, wou n d'Zuel vun den Zeilen déi Dir wëllt weisen ier (Vir) an duerno (No) vum Match oder béid zur selwechter Zäit (C), sou datt Dir gesitt wat de Match ronderëm ass:

egrep -A 2 "printf" hola.c

egrep -B 2 "printf" hola.c

egrep -C 2 printf hola.c

Ënnerdréckt d'Linnen déi e Match enthalen a weisen nëmmen déi déi net passen:

egrep -v "dos" números.doc

Oder wann Dir et virzitt, kënnt Dir se benotzen méi Wierder oder Matcher mat -eAn. Zum Beispill:

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

Wann Dir benotzt -c kann nëmmen d'Zuel vun de Matcher zielen, oder ëmdréit et mat -v fir d'Zuel vun de net passenden Zeilen ze weisen. Zum Beispill:

egrep -c "include" main.c

egrep -v -c "include" main.c

A souguer weisen Zuel wou de Match geschitt ass, an och déi Positioun déi et besetzt respektiv:

egrep -n "void" hola.c

egrep -o -b "printf" hola.c

An zesumme mat der reegelméisseg Ausdréck seng Fäegkeete kënnen ausgebaut ginn. Zum Beispill fannt Dir eng Zeil déi mat Hallo ufänkt a mat Äddi ophält, oder déi ufänkt mat Hallo gefollegt vun egal wéi an dann de Match Äddi bzw.

* Korrektur vum nächste Kommando: dank dem Kommentar vum Lieser Manuel Alcocer konnt ech de kommende Kommando änneren, well et war e Feeler.

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

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

Awer wann Dir Iech iwwer den Ënnerscheed mat grep wonnert, hei ass e Beispill dat Iech et kloer mécht ... Am Fall vu Grep ouni -E benotze sollt Dir entkommen Sequenzen sou datt et d'Spezialzeeche sou interpretéiert, soss géif et d'Muster esou interpretéieren ouni se ze berécksiichtegen. Op der anerer Säit, mat egrep oder grep -E wäert se se berécksiichtegen. Zum Beispill:
grep '^no\(fork\|group\)' /etc/group

Dat wier gläichwäerteg mat:

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

Dat ass, et géif no de passende Linne kucken, déi mat Nofork oder Nogroup ufänken. Awer wann Dir den éischten Ausdrock vun grep ouni d'Fluchtsequenzen benotzt, wat et géif maachen ass ze sichen dat konkret Muster nee (Gabel | Grupp):

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

Dir kënnt och sichen alphanumeresch Reien, oder spezifesch Wäerter, sou wéi verschidde IPen ze lokaliséieren:
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

Wann Dir et virzitt, kënnt Dir aner regulär Ausdréck benotze fir méi spezifesch Recherchen ze maachen. Zum Beispill | een ze fannen Zoufall oder deen aneren:

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

Dir kënnt souguer lokaliséieren grouss, kleng Buschtawen, nëmmen alfabetesch Zeechen, oder alphanumeresch, asw., andeems Dir aner Ausdréck benotzt wéi: [: alnum:], [: alpha:], [: Ziffer:], [: ënnescht:], [: Ofdréck:], [: Punkt:], [: Raum:], [ : iewescht:], asw. Zum Beispill fir no Grouss Busch ze sichen:
egrep [[:upper:]] diccioario

Ech hoffen et hëlleft Iech ... Geschwënn erkläert ech reegelméisseg Ausdréck an engem Artikel speziell dofir gewidmet ...


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

5 Kommentaren, loosst ären

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.

  1.   Manuel Alcocer Plazhaler Bild sot

    Gudde Mëtteg.

    E puer Bemierkungen ...

    Dir erkläert de Kommando 'egrep' awer setzt net den Ënnerscheed tëscht 'egrep' an 'grep', wat sollt hei sinn.

    Zum Beispill:
    Mat grep: ip -4 a | grep '[0-9] \ +'
    Mat egrep: ip -4 a | egrep '[0-9] +'

    Ahh, an dat ass falsch, 'egrep "Moien. * Äddi" Beispill.txt'; den Erfolleg hei geschitt wann et eng Zeil an der Datei ass déi de String 'Hallo' enthält gefollegt vun egal wéi a gefollegt vun 'Äddi', kann d'Linn wierklech mat egal wéi ufänken.

    Dëst wier wat den Artikel seet:
    egrep '^ Moien. * Äddi $' Beispill.txt

    An all d'Optiounen, oder bal all (ech stoppen net fir et ze kontrolléieren), sinn Optiounen vu 'grep' net vun 'egrep' exklusiv.

    Bescht Gréiss.

    1.    Isaac sot

      Merci fir dëse Feeler ze berichten. Wat Dir iwwer déi regulär Ausdréck kommentéiert, hunn ech et schonn an den zweete Paragraph gesat. Ech widmen hinnen e spezifeschen Artikel, well et der vill sinn an dësen Artikel géif ze laang daueren. Eng Begréissung!

      1.    Manuel Alcocer Plazhaler Bild sot

        Moien nach eng Kéier, Isaac.

        Am zweeten Alinéa seet Dir, oder sollt Dir soen, datt 'egrep' en Alias ​​vu 'grep -E' ass, awer Dir gitt kee Beispill fir 'egrep' mat e puer regulären Ausdréck ze benotzen déi anescht geschriwwe gëtt wéi wann benotzt vun 'grep'.

        En Artikel ze widmen fir verlängert Regelméisseg Ausdréck z'erklären schéngt mir traureg, ënner anerem well et sou Säite sinn déi net Reklamm maachen a ganz wichteg Informatiounsaarbecht fir d'GNU Gemeinschaft maachen: https://www.rexegg.com/

        Ech schreiwen hei net fir ze trollen, meng Intentioun mat all deem ass datt wann een dësen Eintrag liest fir ze kucken wat 'egrep' oder 'grep' mécht, kuckt w.e.g. aner Quellen, dës Eintritt ka keng Referenz op eppes sinn, erkläert et wéineg, schlecht, bitt iwwerflësseg Informatioun a ka konfus sinn, besonnesch fir déi, déi kee Wëssen iwwer GNU an déi mächteg Tools hunn, déi et bitt.

        Schlussendlech hutt Dir de Feeler bäigefüügt a fixéiert deen ech no mengem éischte Kommentar uginn hunn (^ $). Wéi an anere Site, sollt Dir déi Persoun zitéieren déi d'Korrektur gemaach huet, oder op d'mannst soen datt et eng Korrektur ass, dat ass en Deel vun der GNU Basis, déiselwecht Basis mat där dëse Blog gestart gouf a verluer ass.

        A Begréissung.

        1.    Isaac sot

          Merci fir Äre Standpunkt.

  2.   fsafs sot

    ffsaf