Ako používať príkaz Grep v systéme Linux

Pochopenie príkazu grep s praktickými príkladmi na jednoduché filtrovanie a zobrazenie obsahu súboru

GREP znamená „globálna tlač regulárnych výrazov“. Je to užitočná pomôcka príkazového riadka poskytovaná systémom Linux na vyhľadávanie textového riadku, ktorý zodpovedá vzoru poskytnutému používateľom.

grep berie vstup od používateľa vo forme reťazcov alebo slov, ktoré si používateľ želá hľadať v konkrétnom súbore. Príkaz potom skontroluje súbor zadaný používateľom pre tento vzor a potom vráti riadky, ktoré sa zhodujú s poskytnutým vzorom.

Odvádza vynikajúcu prácu tým, že filtruje obsah súboru, čím nám uľahčuje hľadanie konkrétneho obsahu v jednom alebo viacerých súboroch súčasne.

V tomto článku sa pozrime na fungovanie grep s niekoľkými praktickými príkladmi podrobne.

Dostupné možnosti s grep príkaz

Toto sú niektoré zo základných možností, ktoré budete často používať s grep príkaz.

MožnosťPopis
-iPre vyhľadávanie bez ohľadu na veľkosť písmen
-rNa rekurzívne vyhľadávanie všetkých súborov v zadanom adresári a jeho podadresároch
-cZobrazenie celkového počtu zobrazení reťazca
-vNa zobrazenie nezhodujúcich sa riadkov
-wFilter pre konkrétne slovo používané samostatne

Pomocou grep príkaz

grep príkaz sa zvyčajne používa s potrubím (|) užitočnosť. Môže byť implementovaný pomocou shell pipe, keď ho chcete použiť s niektorými inými príkazmi Linuxu. Hoci, grep možno použiť aj samostatne bez potrubia (|) užitočnosť.

Pozrime sa na niektoré zo základných syntaxí grep príkaz s obslužným programom potrubia a bez neho.

Najprv vám ukážem vzorový textový súbor, ktorý použijem na ilustráciu grep príkaz.

INDIA JE KRÁSNA KRAJINA ĽUDÍ MILUJÚCICH MIER. India stojí na troch pilieroch zákonodarnej moci, výkonnej moci a súdnictva. India je krásna krajina mierumilovných ľudí. India sa stará o ľudí, pretože jej kartézske súradnice sú dôležité pre všetky karteziánske súradnice. Nasledujú dva prázdne riadky. V obci je bežným javom pri agrárnych prácach volský povoz. Toto je koniec vzorového súboru.

grep používa sa s potrubím ( | )užitočnosť

grep príkaz možno implementovať spolu s inými príkazmi Linuxu pomocou shell pipe. Napríklad pomocou kat príkaz na zobrazenie obsahu súboru, ale súčasne výstup výstupu pomocou príkazu grep na zobrazenie iba obsahu, ktorý chcete vidieť. To bude jasnejšie, keď si prejdeme príklad.

Syntax:

[príkaz] | grep [reťazec]

Príklad:

vzor mačky.txt | zákonodarný zbor grep

Tu som použil kat príkaz na zobrazenie niektorých riadkov zo súboru „sample.txt“. Zobrazia sa len tie riadky, ktoré obsahujú slovo „legislatíva“, a ostatné riadky sa budú ignorovať.

Výkon:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature India stojí na troch pilieroch zákonodarnej moci, výkonnej moci a súdnictva. gaurav@ubuntu:~/pracovný priestor$

grep používa sa bez potrubia ( | )užitočnosť

grep možno dokonca použiť priamo ako samostatný príkaz bez použitia potrubia ( | ) užitočnosť.

Syntax:

grep [string_to_be_searched] [názov súboru]

Príklad:

grep India sample.txt

Výkon:

India je krásna krajina mierumilovných ľudí. India sa stará o ľudí ako o svoj zdroj

Použil som teda grep priamo na filtrovanie riadkov, ktoré obsahujú reťazec „India“ z textového súboru „sample.txt“.

Pomocou vyhľadávania bez rozlišovania malých a veľkých písmen grep príkaz

Linux je veľmi opatrný, pokiaľ ide o rozlišovanie malých a veľkých písmen, keď spúšťame príkazy na termináli. To si vyžaduje, aby používateľ dával pozor na veľkosť písmen v reťazci vloženom do príkazu.

Pozrime sa na to na príklade.

grep peace sample.txt

V tomto prípade nedostaneme výstup, pretože vo vzorovom súbore neexistuje slovo ako „mier“. Máme slovo „mier“ s veľkým „P“. Slovo je rovnaké, ale keď použijeme grep príkaz bez akejkoľvek možnosti, hľadá presnú zhodu v súbore bez ohľadu na zmeny veľkosti písmen.

Aby ste sa vyhli tejto nejednoznačnosti, môžete jednoducho použiť -i možnosť, ktorá doslova hovorí grep príkaz "Zabudnite na prípad, do ktorého som vložil reťazec, a jednoducho vyhľadajte všetky zodpovedajúce vzory v súbore."

Syntax:

grep -i [reťazec] [názov súboru]

Príklad:

grep -i mier ukážka.txt

Výkon:

INDIA JE KRÁSNA KRAJINA ĽUDÍ MILUJÚCICH MIER. India je krásna krajina mierumilovných ľudí.

Všetky zhodné riadky sa zobrazia bez ohľadu na prípad, v ktorom je zhodný reťazec.

Pomocou rekurzívneho vyhľadávania grep príkaz

The -r voľba vyhľadá všetky súbory v adresári a všetkých jeho podadresároch, ktoré zodpovedajú vzoru reťazca poskytnutému používateľom v príkaze.

Syntax:

grep -i -r [reťazec] [cesta_súboru]

Príklad:

grep -i -r kocúr /domov/gaurav/pracovný priestor

Reťazec je tu „tomcat“ a bude sa hľadať v pracovnom priestore adresára. Všetky podadresáre a súbory v adresári „workspace“ budú tiež naskenované, aby sa zhodovali s poskytnutým vzorom reťazcov.

Výkon:

./context_log.policy:// catalina.policy – ​​Povolenia bezpečnostnej politiky pre Tomcat 7 ./context_log.policy:// Poznámka: Ak je tomcat-juli.jar v ${catalina.base} a nie 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: povolenie java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - JAR JAR pre Tomcat Bootstrap ./catalina.properties:# - JAR pre Tomcat API ./catalina.properties:# - JAR pre Tomcat ./catalina.properties:# - Bežné iné ako Tomcat JARs ./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.cacheSize=5000 . /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

POZNÁMKA: Počas používania -r možnosť s grep musíme zadať cestu k súboru a nie názov súboru

Vyhľadávanie celých slov iba s grep príkaz

Mnohokrát sa stane, že budete hľadať jedno slovo, ale nakoniec zaplníte svoj terminál zodpovedajúcimi riadkami, ktoré obsahujú vaše zodpovedajúce slovo, ale nie ako samostatné slovo. Môžete vidieť riadky, ktoré obsahujú nejaké slová, ktorých podčasťou je reťazec, ktorý ste zadali.

Si z toho zmätený? Nebojte sa, je to oveľa jednoduchšie pochopiť, keď získate príklad.

Príklad:

Tu chcem vyhľadať jednotlivé slovo „košík“ a zobraziť všetky riadky zodpovedajúce tomuto slovu v súbore „sample.txt“.

grep -i cart sample.txt

Výkon:

Dôležitosť karteziánskych súradníc všetkých kartézskych súradníc. používanie volského povozu je v dedine bežným javom pri agrárnych prácach. Voz sa stratil, keď ho chlapec nechal voľný.

Vo výstupe si môžete všimnúť, že slovo „karteziánsky“ obsahuje aj slovo „vozík“, a teda riadky obsahujúce slovo „karteziánsky“ sú zobrazené aj napriek tomu, že ich nechceme zobrazovať.

Môžete použiť -w možnosť s grep príkaz vyriešiť túto nejasnosť.

Syntax:

grep -i -w [reťazec] [názov súboru]

Príklad:

grep -i -w košík vzorka.txt

Výkon:

V obci je bežným javom pri agrárnych prácach volský povoz. Vozík zmizol, keď ho chlapec nechal voľný. 

Teraz, keď ste použili –w možnosť s grep získate iba riadky, v ktorých sa slovo „košík“ používa ako celok.

Obrátené vyhľadávanie pomocou grep príkaz

grep príkaz možno použiť aj opačným spôsobom. Môžeme použiť grep príkaz opačne skrytím zodpovedajúcich riadkov a zobrazením iba riadkov, kde sa zhoda nenašla. Môžete to urobiť pomocou -v možnosť s grep príkaz.

Syntax:

grep -i -v [reťazec] [názov súboru]

Príklad:

grep -i -v zdroj sample.txt

Výkon:

INDIA JE KRÁSNA KRAJINA ĽUDÍ MILUJÚCICH MIER. India stojí na troch pilieroch zákonodarnej moci, výkonnej moci a súdnictva. India je krásna krajina mierumilovných ľudí. kartézske súradnice dôležitosť všetkých karteziánskych súradníc. V obci je bežným javom pri agrárnych prácach volský povoz. Toto je koniec vzorového súboru.

Vo výstupe sa zobrazia všetky ostatné riadky okrem riadku, ktorý obsahuje slovo „zdroj“.

Počítanie výskytov zhodného reťazca

Výstup z grep príkaz je zvyčajne veľmi dlhý, ak sú údaje v súbore rozsiahle. Čím viac zápasov, tým dlhšie sú výstupy grep príkaz. Linux vám poskytuje možnosť, kde si môžete zobraziť počet výskytov zhody.

Syntax:

grep -i -c [reťazec] [názov súboru]

Príklad:

grep -i -c india sample.txt

Výkon:

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

Tu je výstupom číslo, ktoré predstavuje počet výskytov slova „India“ v súbore sample.txt.

POZNÁMKA: Použil som -i možnosť v každom príklade, aby ste boli v bezpečí s problémom rozlišovania malých a veľkých písmen. V prípade, že ste si istí veľkosťou písmen v hľadanom slove, pokojne môžete vynechať -i možnosť.

Záver

Naučili sme sa základné využitie grep príkaz na systémoch Linux v tomto návode. Naučili sme sa tiež zobrazovať rôzny obsah, ktorý najlepšie vyhovuje našim požiadavkám a nezapĺňať terminál množstvom liniek. grep príkaz určite šetrí čas, ak sa použije na skenovanie veľkých súborov údajov.