Kako uporabljati ukaz Grep v Linuxu

Razumevanje ukaza grep s praktičnimi primeri za enostavno filtriranje in prikaz vsebine datoteke

GREP pomeni "Global Regular Expression Print". Je uporaben pripomoček ukazne vrstice, ki ga ponuja Linux, za iskanje vrstice besedila, ki se ujema z vzorcem, ki ga je zagotovil uporabnik.

grep prevzame vnos od uporabnika v obliki nizov ali besed, ki jih uporabnik želi iskati v določeni datoteki. Ukaz nato preveri datoteko, ki jo je za ta vzorec določil uporabnik, in nato vrne vrstice, ki se ujemajo z navedenim vzorcem.

Odlično opravi s filtriranjem vsebine datoteke, s čimer nam olajša iskanje določene vsebine v eni ali več datotekah hkrati.

V tem članku si oglejmo delovanje grep povejte z nekaj praktičnimi primeri v podrobnosti.

Možnosti, ki so na voljo z grep ukaz

To je nekaj temeljnih možnosti, ki jih boste pogosto uporabljali z grep ukaz.

MožnostOpis
-jazZa iskanje brez upoštevanja velikih in malih črk
-rZa rekurzivno iskanje vseh datotek v določenem imeniku in njegovih podimenikih
-cZa prikaz skupnega števila prikazov niza
-vZa prikaz neujemajočih se vrstic
-wFilter za to določeno besedo, ki se uporablja ločeno

Uporabljati grep ukaz

grep ukaz se običajno uporablja s cevjo (|) uporabnost. Lahko ga implementirate z lupino cevi, ko jo želite uporabiti z nekaterimi drugimi ukazi Linuxa. čeprav, grep lahko se uporablja tudi posamezno brez cevi (|) uporabnost.

Poglejmo si nekaj osnovnih sintaks grep ukaz z in brez pripomočka za cevi.

Naj vam najprej pokažem vzorčno besedilno datoteko, ki jo bom uporabil za ponazoritev grep ukaz.

INDIJA JE LEPA DRŽAVA LJUDI LJUBEČIH MIR. Indija stoji na treh stebrih zakonodajne, izvršilne in sodne oblasti. Indija je čudovita država ljudi, ki ljubijo mir. Indija skrbi za ljudi, saj je njen vir kartezijanskih koordinat pomembnosti vseh kartezijskih koordinat. Sledi dve prazni vrstici. uporaba volovske vprege je v vasi običajen prizor za agrarna opravila. To je konec vzorčne datoteke.

grep uporablja se s cevjo ( | )uporabnost

grep ukaz se lahko izvaja skupaj z drugimi ukazi Linuxa z uporabo lupinskih cevi. Na primer z uporabo mačka ukaz za prikaz vsebine datoteke, hkrati pa za oddajanje izhoda s pomočjo grep ukaz za prikaz samo vsebine, ki si jo želite ogledati. To bo bolj jasno, ko bomo pregledali primer.

Sintaksa:

[ukaz] | grep [niz]

Primer:

mačka sample.txt | grep zakonodajalec

Tukaj sem uporabil mačka ukaz za prikaz nekaj vrstic iz datoteke 'sample.txt'. Prikazane morajo biti samo tiste vrstice, ki vsebujejo besedo »zakonodajalec«, preostale vrstice pa prezreti.

Izhod:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india stoji na treh stebrih zakonodajne, izvršilne in sodne oblasti. gaurav@ubuntu:~/workspace$

grep uporablja se brez cevi ( | )uporabnost

grep lahko celo uporabite neposredno kot posamezen ukaz brez uporabe cevi ( | ) uporabnost.

Sintaksa:

grep [string_to_be_searched] [ime datoteke]

Primer:

grep India sample.txt

Izhod:

Indija je čudovita država ljudi, ki ljubijo mir. Indija skrbi za ljudi kot svoj vir

Tako sem uporabil grep ukaz neposredno za filtriranje vrstic, ki vsebujejo niz 'India' iz besedilne datoteke 'sample.txt'.

Iskanje brez razlike med velikimi in malimi črkami grep ukaz

Linux je zelo previden glede občutljivosti na velike in male črke, ko sprožimo ukaze na terminalu. To od uporabnika zahteva, da bo previden pri nizu, ki je vstavljen v ukaz.

Poglejmo si to skozi primer.

grep peace sample.txt

V tem primeru ne bomo dobili izhoda, saj v vzorčni datoteki ne obstaja beseda "mir". Imamo besedo "Mir" z veliko "P". Beseda je enaka, vendar ko uporabljamo grep brez kakršne koli možnosti, išče natančno ujemanje v datoteki, pri čemer ne upošteva morebitnih sprememb velikih črk.

Da bi se izognili tej dvoumnosti, lahko preprosto uporabite -jaz možnost, ki dobesedno pove grep ukaz "pozabite na primer, v katerega sem vstavil niz, in samo poiščite vse ujemajoče se vzorce v datoteki."

sintaksa:

grep -i [niz] [ime datoteke]

Primer:

grep -i mir sample.txt

Izhod:

INDIJA JE LEPA DRŽAVA LJUDI LJUBEČIH MIR. Indija je čudovita država ljudi, ki ljubijo mir.

Vse ujemajoče se vrstice so prikazane ne glede na primer, v katerem je ujemajoči se niz.

Rekurzivno iskanje z uporabo grep ukaz

The -r možnost bo poiskala vse datoteke v imeniku in vse njegove podimenike, ki se ujemajo z vzorcem niza, ki ga je zagotovil uporabnik v ukazu.

Sintaksa:

grep -i -r [niz] [pot_datoteke]

Primer:

grep -i -r tomcat /home/gaurav/workspace

Tukaj je niz 'tomcat' in bo poiskan v delovnem prostoru imenika. Vsi podimeniki in datoteke v imeniku 'delovni prostor' bodo tudi skenirani, da se ujemajo s priloženim vzorcem nizov.

Izhod:

./context_log.policy:// catalina.policy - dovoljenja varnostne politike za Tomcat 7 ./context_log.policy:// Opomba: če je tomcat-juli.jar v ${catalina.base} in ne v ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: dovoljenje java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - JAR-ji Tomcat Bootstrap ./catalina.properties:# - JAR-ji Tomcat API ./catalina.properties:# - JAR-ji Tomcat ./catalina.properties:# - Pogosti, ki niso Tomcat JAR-ji ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina:#.properties tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache=5.cacheSize. /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

OPOMBA: Med uporabo -r možnost z grep ukazom moramo zagotoviti pot do datoteke in ne imena datoteke

Iskanje celih besed samo z grep ukaz

Velikokrat je tako, da boste iskali eno besedo, vendar boste na koncu zapolnili svoj terminal z ujemajočimi se vrsticami, ki vsebujejo vašo ujemajočo se besedo, vendar ne kot posamezno besedo. Morda boste videli vrstice, ki vsebujejo nekaj besed, katerih poddel je niz, ki ste ga vnesli.

Ste zmedeni s tem? Ne skrbite, ko dobite primer, je veliko lažje razumeti.

Primer:

Tukaj želim poiskati posamezno besedo "košarica" ​​in prikazati vse vrstice, ki se ujemajo s to besedo, v datoteki "sample.txt".

grep -i košarica sample.txt

Izhod:

Pomen kartezijanskih koordinat vseh kartezijanskih koordinat. uporaba volovske vprege je v vasi običajen prizor za agrarna opravila Voz je izginil, ko ga je deček pustil.

V izhodu lahko opazite, da beseda 'kartezijanski' vsebuje tudi besedo 'voziček' in zato so prikazane tudi vrstice, ki vsebujejo besedo 'kartezijanski', čeprav ne želimo, da so prikazane.

Lahko uporabite -w možnost z grep ukaz za rešitev te nejasnosti.

Sintaksa:

grep -i -w [niz] [ime datoteke]

Primer:

grep -i -w voziček sample.txt

Izhod:

uporaba volovske vprege je v vasi običajen prizor za agrarna opravila. Voziček je izginil, ko ga je deček pustil ohlapnega. 

Zdaj, ko ste uporabili –w možnost z grep dobili boste samo vrstice, v katerih je beseda "voziček" uporabljena kot celota.

Obrnjeno iskanje z uporabo grep ukaz

grep ukaz se lahko uporablja tudi v obratnem načinu. Lahko uporabimo grep ukaže nasprotno, tako da skrijete ujemajoče se vrstice in prikažete samo vrstice, kjer ni ujemanja. To lahko storite z uporabo -v možnost z grep ukaz.

Sintaksa:

grep -i -v [niz] [ime datoteke]

Primer:

grep -i -v vir sample.txt

Izhod:

INDIJA JE LEPA DRŽAVA LJUDI LJUBEČIH MIR. Indija stoji na treh stebrih zakonodajne, izvršilne in sodne oblasti. Indija je čudovita država ljudi, ki ljubijo mir. kartezične koordinate pomembnost vseh th kartezičnih koordinat. uporaba volovske vprege je v vasi običajen prizor za agrarna opravila. To je konec vzorčne datoteke.

V izhodu so prikazane vse druge vrstice, razen vrstice, ki vsebuje besedo 'vir'.

Štetje pojavov ujemajočega se niza

Izhod iz grep ukaz je običajno zelo dolg, če so podatki v datoteki obsežni. Več ko je vžigalic, daljši so izhodi grep ukaz. Linux vam ponuja možnost, kjer lahko prikažete število ponovitev ujemanja.

Sintaksa:

grep -i -c [niz] [ime datoteke]

Primer:

grep -i -c indija sample.txt

Izhod:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Tukaj je izhod številka, ki je število pojavljanj besede »Indija« v datoteki sample.txt.

OPOMBA: Uporabil sem -jaz možnost v vsakem primeru, da bi bili varni pri vprašanju občutljivosti velikih in malih črk. Če ste prepričani o veliki črki besede, ki jo iščete, lahko varno izpustite -jaz možnost.

Zaključek

Naučili smo se temeljne uporabe grep ukaz v sistemih Linux v tej vadnici. Naučili smo se tudi prikazovati različne vsebine, ki najbolj ustrezajo našim zahtevam, in ne natrpati terminala z množico vrstic. grep ukaz bo zagotovo prihranil čas, če bo uporabljen za skeniranje velikih podatkovnih nizov.