Beispiller Gebitt vum Linux-Grep Command

Aféierung

De Linux grep Kommando gëtt als Methode fir d'Input ze filteren.

GREP steet fir Global Regular Expression Printer an duerfir, fir se effektiv ze benotzen, musst Dir e puer Wësse iwwer regulär Ausdréck hunn.

An dësem Artikel wäert ech Iech eng Rei Beispiller ze weisen, déi Iech hëllefe fir de Grep Kommando ze verstoen.

01 09

Wéi gesitt Dir eng String an enger Datei mat GREP

De Linux grep Command.

Stellt Iech vir Dir eng Textdatei déi Bicher genannt gëtt mat den folgenden Bicher Titel:

Fir all d'Bicher mat dem Wuert "The" am Titel ze fannen wären déi folgend Syntax benotzt:

grep Déi Bicher

Déi folgend Resultater ginn zeréckgelooss:

An all Fall gëtt de Begrëff "De" agefouert.

Bedenkt datt d'Sich Case Fall Sensibel ass also wann een vun den Titelen "d'" anstatt "The" hätt da wier et net zréckkomm.

Fir den Fall ze ignoréieren kënnt Dir de folgende Schalter:

grep de Bicher --ignore-Fall

Dir kënnt och den -i wiesselen wéi folgend.

grep -i d'Bicher

02 09

Sicht e String an enger Datei mat Wildcards

De Grep Kommando ass ganz mächteg. Dir kënnt eng Vielfalt vun Muster mat ähnleche Techniken benotzen fir d'Resultater ze filteren.

An dësem Beispill wäert ech Iech weisen wéi wéi Dir e String an engem Fichier mat Wildcards sicht.

Stellt Iech vir Dir hutt e Fichier genannt Plazen mat de folgende schottesch Plazennammen:

aberdeen

aberystwyth

aberlour

Inverurie

Inverness

Newburgh

neien Réi

nei Galaxis

glasgow

Edinburgh

Wann Dir all d'Plazen mat Inver am Numm fonnt hutt, benotzt dës Syntax:

grep Invers * Plazen

D'Asterisk (*) Plazskarte steet fir 0 oder véier. Dofir, wann Dir e Plaz genannt Inver oder eng Plaz genannt Inverness gitt, wäerte mer zwee erëm zréckginn.

Eng aner Plaz wou Dir benotzt ka sinn d'Period (.). Dir kënnt dëst mat engem eenzegen Bréif gleewen.

grep Inver.r Plazen

Dëse Kommando huet Orte genannt Inverurie a Inveräre fonnt, mä et hätt keng Invereerie fonnt, well et nëmme kann nëmmen eng Plaz sinn tëscht den zwou R 's wéi déi eenzeg Period.

D'Periodiskarte ass nëtzlech, awer et kann Problemer ginn, wann Dir e Wuert als Deel vum Text Dir sicht.

Zum Beispill kuckt op dës Lëscht vu Domainennammen

Fir all the About.coms ze fannen déi Dir einfach benotzt hutt, mat der folgender Syntax:

grep * iwwer * Domainnames

Dëse Kommando wäerte falen, wann d'Lëscht den folgenden Numm enthält:

Dir kënnt also de folgende Syntax probéieren:

grep * about.com Domainnames

Dëst géif an der Rei sinn, ausser wann et en Domain mat dem folgendem Numm war:

onycom.com

Fir eng Sich no der Begrëff on.com ze fannen, musst Dir d'Punkt dru sinn wéi folgend:

grep * iwwer \\ domainnames

Déi lescht Plaz fir Iech ze weisen, ass d'Fro no Mark, dee fir Null oder e Charakter steet.

Zum Beispill:

grep? placenames

Dëse Kommando wär erëm Aberdeel, Aberystwëll oder souguer Berwick zréck.

03 vun 09

Fir Strings um Ufank a Enn vun der Linn Sich grep

De Karat (^) an den Dollar ($) Symbol erlaaben Iech fir Muster am Ufank a Enn vun Zeilen ze sichen.

Stellt Iech vir Dir hutt e Fichier genannt Football mat de folgende Nimm:

Wann Dir all d'Équipen fonnt huet, déi mat Manchester ugefaangen hunn, géift Dir déi folgend Syntax benotzen:

grep ^ Manchester Teams

Dee virdrun Kommando géif Manchester City an Manchester United zréckginn, awer net FC United Of Manchester.

Alternativ kanns de all déi Équipen déi mat United mat der folgender Syntax fannen:

grep United $ Équipen

Den obengenannten Kommando géif Manchester United an Newcastle United zréckginn, awer net FC United Of Manchester.

04 vun 09

Zielt d'Zuel vu Mätscher benotzt Grepp

Wann Dir déi eigentlech Linnen net zréckkënnt, déi mat engem Muster mat Grepp passen, awer Dir wësst nëmme wësst wéivill et Dir kënnt déi folgend Syntax benotzen:

grep -c Muster-inputfile

Wann d'Muster zweemol mat ugepasst ass, dann ass d'Nummer 2 zréckkomm.

05 09

Fannt all d'Terme déi net mat de Grepp sinn

Stellt Iech eng Lëscht mat Platzennamen mat de Länner wéi folgend opgelëscht:

Dir hutt bemierkt datt dës Kolwinnbucht kee Land ass.

Fir no all Plaz mat engem Land ze sichen deen d'folgend Syntax benotzt:

grep Land $ Plazen

D'Resultater kënnt zréck an all déi aner ausser de Colwynbucht.

Dëst offensichtlech eréischt fir Plazen déi am Land wunnen (kaum wëssenschaftlech).

Dir kënnt de Wielt mat der folgender Syntax ëmsetzen:

grep -v land $ plazen

Dëst hätt all déi Plaatz fonnt, déi net mat Land ofgeschloss hunn.

06 vun 09

Wéi fannen e Leegzeechen a Fënzen ze fannen Fir Grepp ze benotzen

Stellt Iech vir, datt Dir eng Input Datei hutt, déi vun enger Applikatioun vun Drëtter benotzt gëtt, déi d'Datei liest aalt wann se eng leeg Linn ass wéi folgend:

Wann d'Applikatioun no der Linn nach liverpool ass, da stierwt d'Bedeitung vun der Sägende Bucht net voll ass.

Dir benotzt grep fir nei eidel Zeilen ze fannen mat der folgender Syntax:

grep ^ $ Plazen

Leider ass dat net besonnesch nëtzlech, well et just déi eidel Zeilen zréckkënnt.

Dir kënnt natierlech e Zousatz vun der Zuel vu Leerzeilen als Scheck kréien fir ze kucken, ob d'Datei gëlteg ass wéi folgend:

grep -c ^ $ Plazen

Et hätt awer méi nëtzlech fir d'Zeilennummeren ze kennen déi eng eidel Zeil hunn, fir datt se se ersat hunn. Dir kënnt dat mat dem folgendem Kommando maachen:

grep -n ^ $ Plazen

07 vun 09

Wéi gesidd Dir fir Strings Of Uppercase Oder Schrëftgréisst Zeeche Mat grep

Mat grep Dir kënnt feststellen datt d'Zeilen an enger Datei uppercase Zeechen benotze mat der folgender Syntax:

grep '[AZ]' Dateinumm

Déi eckeg Klammeren [] léisst Iech de Palette vun Zeechen feststellen. An dësem Beispill geet et mat all Charakter deen tëschent A an Z ass.

Dir kënnt also mat engem klengt Zeechen mat der folgender Syntax benotzen:

grep '[az]' Dateinumm

Wann Dir nëmmen Bréiwer mat enger Numerik oder aner Symboler passt, kënnt Dir déi folgend Syntax benotzen:

grep '[a-zA-Z]' Dateinumm

Dir kënnt dat selwecht mat Nummeren maachen wéi folgend:

grep '[0-9]' Dateinumm

08 09

Dir sicht Repeating Patterns Grep

Dir kënnt gekräizegt Klammern {} fir e repetitive Muster nozekucken.

Stellt Iech vir Dir hutt e Fichier mat Telefonsnummer wéi folgend:

Dir wësst de éischte Deel vun der Zuel muss dräi Zifferen hunn an Dir wëllt d'Zeilen fannen déi net mat dësem Muster passen.

Aus dem virege Beispill well Dir wësst dass [0-9] d'Zuelen an engem Fichier zréckgitt.

An dësem Fall wëlle mir déi Linnen, déi mat dräi Zuelen unzefänken mat engem Bindestrich (-). Dir kënnt dat mat der folgender Syntax maachen:

grep "^ [0-9] [0-9] [0-9] -" Zuelen

Wéi mir aus fréiere Beispiller kenne wëssen de Karat (^) datt d'Linn mat dem folgendem Muster beginn.

De [0-9] sicht no Zuelen tëschend 0 an 9. Dofir ass et dräimol ëmfaasst 3 Matcher. Schlussendlech ass e Bindestrich ze bezeechent datt e Bindefol op déi dräi Zuelen geléngt.

Wann Dir de Curly Brackets benotzt, kënnt Dir d'Recherche méi kleng maachen:

grep "^ [0-9] \ {3 \} -" Zuelen

De Schlitz kënnt aus der [Klammer, sou datt et als Deel vum regulären Ausdrock funktionn, awer am Wesentlechen wat dëst soen ass [0-9] {3}, wat all Ziffer tëschent 0 an 9 dräimol heescht.

D'Kierfegklammer kann och als folgend benotzt ginn:

{5,10}

{5,}

De {5,10} heescht, datt de Charakter dee gesicht muss muss op d'mannst 5x erëmfonnt ginn, awer net méi wéi 10, während de {5} heescht, datt de Charakter op d'mannst 5x ze widderhuelen ass awer et kann méi wéi dat sinn.

09 09

Den Output From Other Commands benotzt Grepp

Bis esou wäit hunn mir mat Muster matenee gespäichert, déi an eenzelen Dateie passen, mee grep kann den Output vun aner Befehle als den Input for Pattern Matching benotzen.

E grousse Beispill vu dat benotzt de ps Kommando, deen aktive Prozesser liesen.

Fëllt zum Beispill de Kommando aus:

ps -ef

All déi lafen Prozesser op Ärem System ginn ugewisen.

Dir kënnt de Grep benotze fir no enger bestëmmter lafe Prozedur wéi folgend ze sichen:

ps -ef | grep firefox

Summary

D'Befreiung vun grep ass e fundamentale Linux Kommando. Et ass eng Léierplaz, déi et lount amplaz e Léierprozess ze maachen.