Kaip naudoti „Grep Command“ sistemoje „Linux“.

Suprasti grep komandą su praktiniais pavyzdžiais, kad būtų galima lengvai filtruoti ir rodyti failo turinį

GREP reiškia „Global Regular Expression Print“. Tai naudinga „Linux“ teikiama komandų eilutės priemonė, skirta ieškoti teksto eilutės, atitinkančios vartotojo pateiktą šabloną.

grep paima įvestį iš vartotojo kaip eilutes arba žodžius, kurių vartotojas nori ieškoti tam tikrame faile. Tada komanda patikrina vartotojo nurodytą failą, kuriame yra šis šablonas, ir grąžina eilutes, kurios atitinka pateiktą šabloną.

Filtruodamas failo turinį atlieka puikų darbą, todėl mūsų užduotis yra lengviau ieškoti tam tikro turinio viename ar keliuose failuose vienu metu.

Šiame straipsnyje apžvelgsime, kaip veikia grep komandą su kai kuriais išsamiais praktiniais pavyzdžiais.

Galimos parinktys su grep komandą

Tai yra keletas pagrindinių parinkčių, kurias dažnai naudosite su grep komandą.

Parinktisapibūdinimas
-iDėl paieškos neskiriant didžiųjų ir mažųjų raidžių
-rRekursyviai ieškoti visų failų nurodytame kataloge ir jo pakatalogiuose
-cNorėdami parodyti bendrą eilutės parodymų skaičių
-vKad būtų rodomos nesutampančios eilutės
-wFiltruokite tam konkretų žodį, naudojamą atskirai

Naudojant grep komandą

grep komanda paprastai naudojama su vamzdžiu (|) naudingumas. Jį galima įdiegti su apvalkalo vamzdžiu, kai norite jį naudoti su kitomis Linux komandomis. nors, grep gali būti naudojamas ir atskirai be vamzdžio (|) naudingumas.

Pažiūrėkime į kai kurias pagrindines sintakses grep komanda su vamzdžių programa ir be jos.

Pirmiausia leiskite jums parodyti teksto failo pavyzdį, kurį naudosiu iliustruodamas grep komandą.

INDIJA YRA GRAŽI TAIKĄ MYLIČIŲ ŽMONIŲ ŠALIS. Indija stovi ant trijų įstatymų leidžiamosios, vykdomosios ir teisminės valdžios ramsčių. Indija yra graži taiką mylinčių žmonių šalis. Indija rūpinasi žmonėmis, nes jos išteklius dekartinės koordinatės yra svarbios visų dekartinių koordinačių. Toliau pateikiamos dvi tuščios eilutės. Naudojimasis jaučių vežimu yra įprastas vaizdas kaime atliekant agrarinius darbus. Tai pavyzdinio failo pabaiga.

grep naudojamas su vamzdžiu ( | )naudingumas

grep komanda gali būti įgyvendinta kartu su kitomis Linux komandomis naudojant apvalkalo vamzdžius. Pavyzdžiui, naudojant katė komandą, kad būtų rodomas failo turinys, bet tuo pačiu metu perduodama išvestis naudojant grep komandą, kad būtų rodomas tik tas turinys, kurį norite matyti. Tai bus aiškiau, kai peržiūrėsime pavyzdį.

Sintaksė:

[komanda] | grep [styga]

Pavyzdys:

katės pavyzdys.txt | grep įstatymų leidėjas

Čia aš panaudojau katė komandą, kad būtų rodomos kai kurios eilutės iš failo „sample.txt“. Turi būti rodomos tik tos eilutės, kuriose yra žodis „įstatymų leidėjas“, ir nepaisyti kitų eilučių.

Išvestis:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india stovi ant trijų įstatymų leidžiamosios, vykdomosios ir teisminės valdžios ramsčių. gaurav@ubuntu:~/workspace$

grep naudojamas be vamzdžio ( | )naudingumas

grep netgi gali būti naudojama tiesiogiai kaip atskira komanda, nenaudojant vamzdžio ( | ) naudingumas.

Sintaksė:

grep [ieškoma_eilutė] [failo pavadinimas]

Pavyzdys:

grep Indija sample.txt

Išvestis:

Indija yra graži taiką mylinčių žmonių šalis. Indija rūpinasi žmonėmis kaip ištekliais

Taigi aš panaudojau grep komanda tiesiogiai filtruoti eilutes, kuriose yra eilutė „Indija“ iš tekstinio failo „sample.txt“.

Mažųjų ir mažųjų raidžių neskiriama paieška naudojant grep komandą

Linux labai atsargiai žiūri į didžiųjų ir mažųjų raidžių jautrumą, kai paleidžiame komandas terminale. Tam reikia, kad vartotojas būtų atsargus dėl į komandą įtrauktos eilutės.

Pažiūrėkime tai per pavyzdį.

grep taikos pavyzdys.txt

Tokiu atveju negausime išvesties, nes pavyzdiniame faile nėra žodžio „taika“. Mes turime žodį „Peace“ su didžiąja „P“. Žodis yra tas pats, bet kai naudojame grep komandą be jokios parinkties, ji ieško tikslios atitikties faile, neatsižvelgdama į bet kokius didžiosios ir mažosios raidės pakeitimus.

Norėdami išvengti šios dviprasmybės, galite tiesiog naudoti -i parinktis, kuri tiesiogine prasme nurodo grep komandą „Pamirškite atvejį, kai įdėjau eilutę, ir tiesiog ieškokite visų atitinkančių šablonų faile.

Sintaksė:

grep -i [eilutė] [failo pavadinimas]

Pavyzdys:

grep -i taikos pavyzdys.txt

Išvestis:

INDIJA YRA GRAŽI TAIKĄ MYLIČIŲ ŽMONIŲ ŠALIS. Indija yra graži taiką mylinčių žmonių šalis.

Rodomos visos atitinkančios eilutės, neatsižvelgiant į tai, kokiu atveju yra atitinkama eilutė.

Rekursinė paieška naudojant grep komandą

The -r parinktis ieškos visų failų kataloge ir visuose jo pakatalogiuose, kurie atitinka vartotojo komandoje pateiktą eilutės šabloną.

Sintaksė:

grep -i -r [eilutė] [failo_kelias]

Pavyzdys:

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

Čia esanti eilutė yra „tomcat“ ir jos bus ieškoma katalogo darbo srityje. Taip pat bus nuskaityti visi pakatalogiai ir failai „darbo srities“ kataloge, kad atitiktų pateiktą eilutės šabloną.

Išvestis:

./context_log.policy:// catalina.policy – ​​Tomcat 7 saugos politikos leidimai ./context_log.policy:// Pastaba: jei tomcat-juli.jar yra ${catalina.base}, o ne ${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: permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# – Tomcat Bootstrap JAR ./catalina.properties:# – Tomcat API JAR ./catalina.properties:# – Tomcat JAR ./catalina.properties:# – Dažni ne Tomcat JAR ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catal:#ina tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache=cache0Size /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

PASTABA: Kai naudojate -r variantas su grep komandoje turime nurodyti failo kelią, o ne failo pavadinimą

Ieškoma tik ištisų žodžių su grep komandą

Dažnai būna taip, kad ieškosite vieno žodžio, bet galiausiai savo terminalą užpildysite atitinkančiomis eilutėmis, kuriose yra jūsų atitinkantis žodis, bet ne kaip atskiras žodis. Galite matyti eilutes, kuriose yra keletas žodžių, kurių poskyris yra jūsų įvesta eilutė.

Supainiojote su tuo? Nesijaudinkite, kai gausite pavyzdį, daug lengviau suprasti.

Pavyzdys:

Čia noriu ieškoti atskiro žodžio „krepšelis“ ir rodyti visas eilutes, atitinkančias šį žodį faile „sample.txt“.

grep -i krepšelis pavyzdys.txt

Išvestis:

Dekarto koordinatės svarba visos Dekarto koordinatės. jaučių vežimas yra įprastas vaizdas kaime atliekant agrarinius darbus Vežimėlis dingo, kai berniukas jį paliko palaidą.

Išvestyje galite pastebėti, kad žodyje „Dekartinis“ taip pat yra žodis „krepšelis“, taigi, eilutės, kuriose yra žodis „Dekartinis“, taip pat rodomos, net jei nenorime, kad jos būtų rodomos.

Galite naudoti -w variantas su grep komandą išspręsti šią dviprasmybę.

Sintaksė:

grep -i -w [eilutė] [failo pavadinimas]

Pavyzdys:

grep -i -w krepšelio pavyzdys.txt

Išvestis:

Naudojimasis jaučių vežimu yra įprastas vaizdas kaime atliekant agrarinius darbus. Vežimėlis dingo, nes berniukas jį paliko palaidą. 

Dabar, kai naudojote –w variantas su grep gausite tik tas eilutes, kuriose žodis „krepšelis“ vartojamas kaip visuma.

Apversta paieška naudojant grep komandą

grep komanda taip pat gali būti naudojama atvirkštine tvarka. Mes galime naudoti grep komandą priešingai, paslėpdami atitinkančias eilutes ir rodydami tik tas eilutes, kuriose atitiktis nerasta. Tai galite padaryti naudodami -v variantas su grep komandą.

Sintaksė:

grep -i -v [eilutė] [failo pavadinimas]

Pavyzdys:

grep -i -v išteklių pavyzdys.txt

Išvestis:

INDIJA YRA GRAŽI TAIKĄ MYLIČIŲ ŽMONIŲ ŠALIS. Indija stovi ant trijų įstatymų leidžiamosios, vykdomosios ir teisminės valdžios ramsčių. Indija yra graži taiką mylinčių žmonių šalis. stačiakampių koordinačių svarba. Naudojimasis jaučių vežimu yra įprastas vaizdas kaime atliekant agrarinius darbus. Tai pavyzdinio failo pabaiga.

Išvestyje rodomos visos kitos eilutės, išskyrus eilutę, kurioje yra žodis „išteklius“.

Atitinkančios eilutės įvykių skaičiavimas

Išvestis grep komanda paprastai yra labai ilga, jei faile yra daug duomenų. Kuo daugiau atitikmenų, tuo ilgesni yra išėjimai grep komandą. „Linux“ suteikia jums parinktį, kurioje galite rodyti atitikmenų skaičių.

Sintaksė:

grep -i -c [eilutė] [failo pavadinimas]

Pavyzdys:

grep -i -c india pavyzdys.txt

Išvestis:

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

Čia išvestis yra skaičius, kuris yra žodžio „Indija“ atvejų skaičius faile sample.txt.

PASTABA: Aš naudojau -i galimybė kiekviename pavyzdyje tiesiog būti saugi dėl didžiųjų ir mažųjų raidžių jautrumo problemos. Jei esate tikri dėl ieškomo žodžio didžiosios ir mažosios raidės, galite drąsiai praleisti -i variantas.

Išvada

Mes išmokome pagrindinius naudojimo būdus grep komandą Linux sistemose šioje pamokoje. Taip pat išmokome rodyti įvairų turinį, kuris geriausiai atitinka mūsų poreikius ir neapkrauti terminalo krūvomis eilučių. grep komanda tikrai sutaupys laiko, jei naudojama dideliems duomenų rinkiniams nuskaityti.