Jak používat příkaz Grep v Linuxu

Pochopení příkazu grep s praktickými příklady pro snadné filtrování a zobrazení obsahu souboru

GREP znamená „Globální tisk regulárních výrazů“. Je to užitečná utilita příkazového řádku poskytovaná Linuxem k vyhledání textového řádku, který odpovídá vzoru poskytnutému uživatelem.

grep přebírá vstup od uživatele ve formě řetězců nebo slov, která si uživatel přeje hledat v konkrétním souboru. Příkaz poté zkontroluje soubor určený uživatelem pro tento vzor a poté vrátí řádky, které odpovídají poskytnutému vzoru.

Odvádí vynikající práci tím, že filtruje obsah souboru, čímž nám usnadňuje hledání konkrétního obsahu v jednom nebo více souborech současně.

V tomto článku se podíváme na fungování grep velení s několika praktickými příklady podrobně.

Dostupné možnosti s grep příkaz

Toto jsou některé ze základních možností, které budete často používat s grep příkaz.

VolbaPopis
-iPro vyhledávání bez rozlišení velkých a malých písmen
-rChcete-li rekurzivně vyhledat všechny soubory v zadaném adresáři a jeho podadresářích
-CZobrazení celkového počtu zobrazení řetězce
-protiChcete-li zobrazit neodpovídající řádky
-wFiltr pro toto konkrétní slovo používané samostatně

Za použití grep příkaz

grep příkaz se obvykle používá s roura (|) užitečnost. Může být implementován pomocí shell pipe, když jej chcete použít s některými jinými příkazy Linuxu. Ačkoli, grep lze použít i jednotlivě bez trubky (|) užitečnost.

Podívejme se na některé základní syntaxe grep příkaz s obslužným programem potrubí a bez něj.

Nejprve vám ukážu ukázkový textový soubor, který použiji k ilustraci grep příkaz.

INDIE JE KRÁSNÁ ZEMĚ LIDÍ MILUJÍCÍ MÍR. Indie stojí na třech pilířích zákonodárné, výkonné a soudní. Indie je krásná země mírumilovných lidí. Indie se stará o lidi, protože její zdroje jsou kartézské souřadnice důležitosti všech kartézských souřadnic. Následují dva prázdné řádky. používání volského povozu je ve vesnici běžným jevem pro agrární práce. Toto je konec ukázkového souboru.

grep používá se s potrubím ( | )užitečnost

grep příkaz lze implementovat spolu s dalšími příkazy Linuxu pomocí shell potrubí. Například pomocí kočka příkaz k zobrazení obsahu souboru, ale zároveň k propojení výstupu pomocí grep příkaz pro zobrazení pouze obsahu, který chcete vidět. To bude jasnější, když si projdeme příklad.

Syntax:

[příkaz] | grep [řetězec]

Příklad:

cat sample.txt | zákonodárný sbor grep

Zde jsem použil kočka příkaz k zobrazení některých řádků ze souboru ‚sample.txt‘. Mají se zobrazit pouze ty řádky, které obsahují slovo „legislativa“, a ostatní řádky ignorovat.

Výstup:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india stojí na třech pilířích legislativy, exekutivy a soudnictví. gaurav@ubuntu:~/workspace$

grep používá se bez potrubí ( | )užitečnost

grep lze dokonce použít přímo jako samostatný příkaz bez použití potrubí ( | ) užitečnost.

Syntax:

grep [string_to_be_searched] [název souboru]

Příklad:

grep Indie sample.txt

Výstup:

Indie je krásná země mírumilovných lidí. Indie se stará o lidi jako o zdroj

Použil jsem tedy grep příkazem přímo filtrovat řádky, které obsahují řetězec ‚Indie‘ z textového souboru ‚sample.txt‘.

Použití vyhledávání bez rozlišení malých a velkých písmen grep příkaz

Linux je velmi opatrný, pokud jde o rozlišení velkých a malých písmen, když spouštíme příkazy na terminálu. To vyžaduje, aby si uživatel dával pozor na velikost písmen řetězce vloženého do příkazu.

Podívejme se na to na příkladu.

grep peace sample.txt

V tomto případě nedostaneme výstup, protože v ukázkovém souboru neexistuje slovo jako „mír“. Máme slovo „Mír“ s velkým „P“. Slovo je stejné, ale když použijeme grep příkaz bez jakékoli možnosti hledá přesnou shodu v souboru bez ohledu na změny velikosti písmen.

Abyste se vyhnuli této nejednoznačnosti, můžete jednoduše použít -i možnost, která doslova říká grep příkaz "zapomeňte na případ, do kterého jsem vložil řetězec, a hledejte všechny odpovídající vzory v souboru."

Syntax:

grep -i [řetězec] [název souboru]

Příklad:

grep -i peace sample.txt

Výstup:

INDIE JE KRÁSNÁ ZEMĚ LIDÍ MILUJÍCÍ MÍR. Indie je krásná země mírumilovných lidí.

Všechny odpovídající řádky jsou zobrazeny bez ohledu na případ, ve kterém je odpovídající řetězec.

Pomocí rekurzivního vyhledávání grep příkaz

The -r volba vyhledá všechny soubory v adresáři a všechny jeho podadresáře, které odpovídají vzoru řetězce poskytnutému uživatelem v příkazu.

Syntax:

grep -i -r [řetězec] [cesta_souboru]

Příklad:

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

Řetězec je zde ‚tomcat‘ a bude vyhledán v pracovním prostoru adresáře. Všechny podadresáře a soubory v adresáři ‚workspace‘ budou také naskenovány, aby odpovídaly zadanému vzoru řetězce.

Výstup:

./context_log.policy:// catalina.policy – ​​Oprávnění zásad zabezpečení pro Tomcat 7 ./context_log.policy:// Poznámka: Pokud je tomcat-juli.jar v ${catalina.base} a 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: oprávnění java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - JAR pro Tomcat Bootstrap ./catalina.properties:# - JAR pro Tomcat API ./catalina.properties:# - JAR pro Tomcat ./catalina.properties:# - Běžné soubory jiných než 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: Při používání -r možnost s grep musíme zadat cestu k souboru a ne název souboru

Hledání celých slov pouze s grep příkaz

Mnohokrát se stane, že budete hledat jedno slovo, ale nakonec zaplníte svůj terminál odpovídajícími řádky, které obsahují vaše odpovídající slovo, ale ne jako samostatné slovo. Můžete vidět řádky, které obsahují některá slova, jejichž podčástí je řetězec, který jste zadali.

Jste s tím zmatení? Nebojte se, je to mnohem snazší pochopit, jakmile získáte příklad.

Příklad:

Zde chci vyhledat jednotlivé slovo ‚košík‘ a zobrazit všechny řádky odpovídající tomuto slovu v souboru ‚sample.txt‘.

grep -i cart sample.txt

Výstup:

Kartézské souřadnice důležitost všech kartézských souřadnic. používání volského povozu je ve vesnici běžným jevem při agrárních pracích Povoz zmizel, když ho chlapec nechal volně.

Ve výstupu můžete pozorovat, že slovo ‚kartézský‘ obsahuje také slovo ‚vozík‘, a proto se zobrazují i ​​řádky obsahující slovo ‚kartézský‘, i když je nechceme zobrazovat.

Můžete použít -w možnost s grep příkaz k vyřešení této nejasnosti.

Syntax:

grep -i -w [řetězec] [název souboru]

Příklad:

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

Výstup:

používání volského povozu je ve vesnici běžným jevem pro agrární práce. Vozík zmizel, když ho chlapec nechal volně. 

Nyní, když jste použili –w možnost s grep získáte pouze řádky, ve kterých je slovo ‚košík‘ použito jako celek.

Inverzní vyhledávání pomocí grep příkaz

grep příkaz lze také použít obráceným způsobem. Můžeme použít grep příkaz naopak skrytím odpovídajících řádků a zobrazením pouze řádků, kde shoda nebyla nalezena. Můžete to udělat pomocí -proti možnost s grep příkaz.

Syntax:

grep -i -v [řetězec] [název souboru]

Příklad:

grep -i -v zdroj sample.txt

Výstup:

INDIE JE KRÁSNÁ ZEMĚ LIDÍ MILUJÍCÍ MÍR. Indie stojí na třech pilířích zákonodárné, výkonné a soudní. Indie je krásná země mírumilovných lidí. kartézské souřadnice důležitost všech tých kartézských souřadnic. používání volského povozu je ve vesnici běžným jevem pro agrární práce. Toto je konec ukázkového souboru.

Ve výstupu jsou zobrazeny všechny ostatní řádky kromě řádku, který obsahuje slovo „zdroj“.

Počítání výskytů shodného řetězce

Výstup z grep příkaz je obvykle velmi dlouhý, pokud jsou data v souboru rozsáhlá. Čím více zápasů, tím delší jsou výstupy grep příkaz. Linux vám nabízí možnost, kde si můžete zobrazit počet výskytů shody.

Syntax:

grep -i -c [řetězec] [název souboru]

Příklad:

grep -i -c indie sample.txt

Výstup:

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

Zde je výstupem číslo, které je počtem výskytů slova ‚Indie‘ v souboru sample.txt.

POZNÁMKA: Použil jsem -i možnost v každém příkladu být v bezpečí s problémem rozlišování malých a velkých písmen. V případě, že jste si jisti velikostí písmen slova, které hledáte, můžete směle vynechat -i volba.

Závěr

Naučili jsme se základní použití grep příkaz na systémech Linux v tomto kurzu. Naučili jsme se také zobrazovat různý obsah, který nejlépe vyhovuje našim požadavkům a nezahlcovat terminál spoustou linek. grep příkaz bude jistě šetřit čas, pokud se použije pro skenování velkých souborů dat.