Përdorimet e Shembujve të Komandës Grep të Linux

Prezantimi

Komanda Linux grep përdoret si një metodë për filtrimin e inputeve.

GREP qëndron për Global Display Express Printer dhe për këtë arsye për ta përdorur atë në mënyrë efektive, ju duhet të keni disa njohuri rreth shprehjeve të rregullta.

Në këtë artikull, unë do të ju tregoj një numër shembujsh të cilat do t'ju ndihmojnë të kuptoni komandën grep.

01 nga 09

Si të kërkoni për një string në një skedar duke përdorur GREP

Komanda Grep e Linux.

Imagjinoni që keni një skedar teksti të quajtur libra me titujt e mëposhtëm të librave për fëmijë:

Për të gjetur të gjitha librat me fjalën "The" në titull ju do të përdorni sintaksën e mëposhtme:

grep Librat

Rezultatet e mëposhtme do të kthehen:

Në secilin rast, fjala "The" do të theksohet.

Vini re se kërkimi është i ndjeshëm ndaj rasti, kështu që nëse një prej titujve kishte "të" në vend të "The", atëherë nuk do të ishte kthyer.

Për të injoruar rastin mund të shtoni kalimin e mëposhtëm:

grep librat - padyshim

Ju gjithashtu mund të përdorni çelësin -i si më poshtë:

grep -i librat

02 nga 09

Kërkoni Për Një String Në Një File Duke përdorur Wildcards

Komanda grep është shumë e fuqishme. Ju mund të përdorni një numër të teknikave të përputhjes së modeleve për të filtruar rezultatet.

Në këtë shembull, unë do t'ju tregoj se si të kërkoni një varg në një skedar duke përdorur wildcards .

Imagjinoni që keni një skedar të quajtur vende me emrat e mëposhtëm skocez:

Aberdeen

Aberystwyth

Aberlour

Inverurie

Inverness

Newburgh

dre i ri

galloway i ri

glasgow

Edinburg

Nëse doni të gjeni të gjitha vendet me inver në emër përdorni sintaksën e mëposhtme:

grep inver * vende

Karakteri i yllit (*) qëndron për 0 ose shumë. Prandaj, nëse keni një vend të quajtur inverth ose një vend i quajtur inverness atëherë të dy do të kthehen.

Një tjetër kartë joligale që mund të përdorni është periudha (.). Ju mund ta përdorni këtë për të përputhur një letër të vetme.

grep inver.r vende

Komanda e mësipërme do të gjente vende të quajtura inverurie dhe inverver, por nuk do të gjenin të pavlefshme, sepse nuk mund të jetë vetëm një zëvendësues midis dy r-ve siç tregohet nga periudha e vetme.

Gjurmët e periudhës janë të dobishme, por mund të shkaktojnë probleme nëse keni një si pjesë të tekstit që po kërkoni.

Për shembull, shikoni në këtë listë të emrave të domain-it

Për të gjetur të gjitha around.coms ju mund të kërkoni vetëm duke përdorur sintaksën e mëposhtme:

grep * rreth * domainnames

Komanda e mësipërme do të binte nëse lista përmbante emrin e mëposhtëm:

Për këtë arsye, mund të provoni sintaksën e mëposhtme:

grep * about.com domainnames

Kjo do të funksiononte mirë nëse nuk do të kishte një domain me emrin e mëposhtëm:

aboutycom.com

Për të kërkuar me të vërtetë për termin on.com do t'ju duhet të shpëtoni dot si më poshtë:

grep * rreth \ .com domainnames

Karakteristika përfundimtare për t'ju treguar është pikëpyetja e cila qëndron për zero ose një karakter.

Për shembull:

grep? ber placenames

Komanda e mësipërme do të kthehej aberdeen, aberystwyth ose edhe berwick.

03 nga 09

Kërko për vargjet në fillim dhe në fund të linjës Përdorni grep

Karakteri (^) dhe dollari ($) ju lejojnë të kërkoni për modelet në fillim dhe në fund të linjave.

Imagjinoni që keni një skedar të quajtur futbolli me emrat e ekipit në vijim:

Nëse dëshironi të gjeni të gjitha ekipet që filluan me Manchester ju do të përdorni sintaksën e mëposhtme:

grep ^ Ekipet e Manchesterit

Komanda e mësipërme do të kthejë Manchester Cityn dhe Manchester Unitedin, por jo FC United Of Manchester.

Përndryshe ju mund të gjeni të gjitha ekipet që përfundojnë me United duke përdorur sintaksën e mëposhtme:

grep United $ ekipet

Komanda e mësipërme do të kthejë Manchester United dhe Newcastle United por jo FC United Of Manchester.

04 nga 09

Numërimi i numrit të ndeshjeve Përdorimi i grep

Nëse nuk doni të ktheni linjat aktuale që përputhen me një model duke përdorur grep, por vetëm doni të dini sa ka atje, ju mund të përdorni sintaksën e mëposhtme:

grep -c modeli inputfile

Nëse modeli përputhet dy herë atëherë numri 2 do të kthehej.

05 nga 09

Gjetja e të gjitha termave që nuk përputhen duke përdorur grep

Imagjinoni që të keni një listë të emrave të vendeve me vendet e renditura si më poshtë:

Ju mund të keni vënë re se gjiri kolwyn nuk ka ndonjë vend të lidhur me të.

Për të kërkuar të gjitha vendet me një vend ju mund të përdorni sintaksën e mëposhtme:

grep tokë $ vende

Rezultatet do të kthehen në të gjitha vendet përveç gjirit të kolwynit.

Kjo sigurisht që punon vetëm për vendet që përfundojnë në tokë (pothuajse shkencore).

Ju mund të anuloni zgjedhjen duke përdorur sintaksën e mëposhtme:

grep -v tokë $ vende

Kjo do të gjente të gjitha vendet që nuk përfundonin me tokën.

06 nga 09

Si të gjeni linjat bosh në skedarë Duke përdorur grep

Imagjinoni që ju keni një skedar hyrje që përdoret nga një aplikacion i palës së tretë që ndalon leximin e skedarit kur gjen një vijë bosh si më poshtë:

Kur aplikacioni merr në vijë pas liverpool do të ndalojë leximin e kuptimit të gjirit të kolwynës është humbur plotësisht.

Ju mund të përdorni grep për të kërkuar linja bosh me sintaksën e mëposhtme:

grep ^ $ vende

Për fat të keq kjo nuk është veçanërisht e dobishme sepse ajo vetëm kthen linjat bosh.

Sigurisht që mund të merrni numërimin e numrit të linjave bosh si një kontroll për të parë nëse dosja është e vlefshme si më poshtë:

grep -c ^ $ vende

Sidoqoftë, do të ishte më e dobishme të njihni numrat e linjave që kanë një vijë bosh në mënyrë që t'i zëvendësoni ato. Këtë mund ta bëni me komandën e mëposhtme:

grep -n ^ $ vende

07 nga 09

Si të kërkoni për vargjet e shkronjave të mëdha apo të vogla Duke përdorur grep

Duke përdorur grep ju mund të përcaktoni se cilat rreshta në një skedë kanë shkronja të mëdha duke përdorur sintaksën e mëposhtme:

grep '[AZ]' filename

Kllapa katrore [] ju lejon të përcaktoni gamën e karaktereve. Në shembullin e mësipërm ajo përputhet me çdo karakter që është midis A dhe Z.

Prandaj, për të krahasuar karakteret e vogla, mund të përdorni sintaksën e mëposhtme:

grep '[az]' emri i skedarit

Nëse doni të përputhni vetëm letra dhe jo numra ose simbole të tjera ju mund të përdorni sintaksën e mëposhtme:

grep '[a-zA-Z]' emri i skedarit

Ju mund të bëni të njëjtën gjë me numrat si më poshtë:

grep '[0-9]' filename

08 nga 09

Duke kërkuar për modele përsëritëse Duke përdorur grep

Ju mund të përdorni kllapa curly {} për të kërkuar një model përsëritës.

Paramendoni që keni një skedar me numra telefoni si më poshtë:

Ju e dini se pjesa e parë e numrit duhet të jetë tre shifra dhe ju doni të gjeni linjat që nuk përputhen me këtë model.

Nga shembulli i mëparshëm ju e dini që [0-9] i kthen të gjithë numrat në një skedar.

Në këtë rast ne duam linjat që fillojnë me tre numra të ndjekur nga një vizë ndarëse (-). Ju mund ta bëni këtë me sintaksën e mëposhtme:

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

Siç e dimë nga shembujt e mëparshëm, karat (^) do të thotë se vija duhet të fillojë me modelin e mëposhtëm.

[0-9] do të kërkojë ndonjë numër midis 0 dhe 9. Pasi kjo përfshihet tri herë ajo përputhet me 3 numra. Së fundi ka një vizë ndarëse për të treguar se një germë duhet të ketë sukses tre numrat.

Duke përdorur kllapa kaçurrela mund të bëni kërkimin më të vogël si më poshtë:

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

Slash shpëton {kllapa në mënyrë që ajo të funksionojë si pjesë e shprehjes së rregullt, por në thelb ajo që thotë kjo është [0-9] {3} që do të thotë çdo numër ndërmjet 0 dhe 9 tri herë.

Kllapat e dredhur mund të përdoren gjithashtu si më poshtë:

{5,10}

{5,}

{5,10} do të thotë se karakteri që kërkohet duhet të përsëritet të paktën 5 herë, por jo më shumë se 10, ndërsa {5,} do të thotë se karakteri duhet të përsëritet të paktën 5 herë, por mund të jetë më shumë se kaq.

09 nga 09

Përdorimi i rezultatit nga komandat e tjera Përdorimi i grep

Deri tani ne kemi shikuar përputhjen e modeleve brenda dosjeve individuale, por grep mund të përdorë outputin nga komandat e tjera si input për përputhjen e modeleve.

Një shembull i madh i kësaj është përdorimi i komandës ps e cila liston proceset aktive.

Për shembull, ekzekutoni komandën e mëposhtme:

ps -ef

Të gjitha proceset drejtuese në sistemin tuaj do të shfaqen.

Ju mund të përdorni grep për të kërkuar një proces të caktuar të drejtimit si më poshtë:

ps -ef | grep firefox

përmbledhje

Komanda grep është një komandë Linux themelore dhe është një mësim i vlefshëm pasi që do ta bëjë jetën tuaj shumë më të lehtë gjatë kërkimit të skedarëve dhe proceseve kur përdoret terminali.