A grep parancs megértése gyakorlati példákkal a fájltartalom egyszerű szűréséhez és megjelenítéséhez
GREP
a „Global Regular Expression Print” rövidítése. Ez a Linux által biztosított hasznos parancssori segédprogram a felhasználó által megadott mintának megfelelő szövegsor keresésére.
grep
a felhasználótól veszi a bemenetet karakterláncok vagy szavak formájában, amelyekben a felhasználó keresni kíván egy adott fájlban. A parancs ezután ellenőrzi a felhasználó által ehhez a mintához megadott fájlt, majd visszaadja a megadott mintának megfelelő sorokat.
Kiváló munkát végez egy fájl tartalmának szűrésével, így megkönnyíti feladatunkat, hogy egy vagy több fájlon egyszerre keressünk bizonyos tartalmakat.
Ebben a cikkben tekintsük át a működését grep
parancsot néhány gyakorlati példával részletesen.
Opciók elérhetők grep
parancs
Ezek azok az alapvető lehetőségek, amelyeket gyakran fog használni a grep
parancs.
választási lehetőség | Leírás |
-én | A kis- és nagybetűket figyelmen kívül hagyó kereséshez |
-r | A megadott könyvtárban és alkönyvtáraiban található összes fájl rekurzív keresése |
-c | Egy karakterlánc megjelenésének teljes számának megjelenítése |
-v | A nem egyező sorok megjelenítéséhez |
-w | Szűrés az adott szóra külön-külön |
Használni a grep
parancs
grep
parancsot általában a pipe (|
) hasznosság. Megvalósítható a shell pipe-vel, ha más Linux-parancsokkal szeretné használni. Habár, grep
cső nélkül külön-külön is használható (|
) hasznosság.
Lássunk néhány alapvető szintaxist a grep
parancs a pipe segédprogrammal és anélkül.
Hadd mutassam meg először a szöveges mintafájlt, amelyet a szemléltetésre fogok használni grep
parancs.
INDIA A BÉKÉTSZERETŐ EMBEREK GYÖNYÖRŰ ORSZÁGA. India a törvényhozás, a végrehajtó hatalom és az igazságszolgáltatás három pilléren áll. India a békét szerető emberek gyönyörű országa. India törődik az emberekkel, mivel erőforrásainak derékszögű koordinátái fontosak az összes derékszögű koordináták számára. Két üres sor következik. A bikaszekér használata gyakori látvány a faluban a mezőgazdasági munkáknál. Ez a mintafájl vége.
grep
csővel használva ( | )hasznosság
grep
parancs végrehajtható más Linux-parancsokkal együtt a shell pipes segítségével. Például a macska
paranccsal megjelenítheti a fájl tartalmát, ugyanakkor a kimenetet a grep
parancsot, hogy csak azt a tartalmat jelenítse meg, amelyet látni szeretne. Ez világosabb lesz, ha végigmegyünk a példán.
Szintaxis:
[parancs] | grep [karakterlánc]
Példa:
macskaminta.txt | grep törvényhozás
Itt használtam a macska
parancsot, hogy megjelenítsen néhány sort a „sample.txt” fájlból. Csak azokat a sorokat kell megjeleníteni, amelyek tartalmazzák a „törvényhozás” szót, és figyelmen kívül hagyják a többi sort.
Kimenet:
gaurav@ubuntu:~/workspace$ cat sample.txt | Az indiai grep törvényhozás a törvényhozás, a végrehajtó hatalom és az igazságszolgáltatás három pilléren áll. gaurav@ubuntu:~/workspace$
grep
cső nélkül használt ( | )hasznosság
grep
akár közvetlenül is használható egyedi parancsként a pipe ( |
) hasznosság.
Szintaxis:
grep [keresendő_karakterlánc] [fájlnév]
Példa:
grep India minta.txt
Kimenet:
India a békét szerető emberek gyönyörű országa. India erőforrásként törődik az emberekkel
Így használtam a grep
parancsot közvetlenül az „India” karakterláncot tartalmazó sorok kiszűréséhez a „sample.txt” szövegfájlból.
Keresés a kis- és nagybetűk között grep
parancs
A Linux nagyon óvatos a kis- és nagybetűk érzékenységével kapcsolatban, amikor elindítjuk a parancsokat a terminálon. Ez megköveteli a felhasználótól, hogy legyen óvatos a parancsban szereplő karakterlánc kis- és nagybetűivel kapcsolatban.
Lássuk ezt egy példán keresztül.
grep béke minta.txt
Ebben az esetben nem kapunk kimenetet, mivel a mintafájlban nem létezik „béke” szó. Nálunk van a „Béke” szó nagy „P” betűvel. A szó ugyanaz, de amikor használjuk a grep
paranccsal minden opció nélkül a pontos egyezést keresi a fájlban, figyelmen kívül hagyva a kis- és nagybetűk változásait.
A kétértelműség elkerülése érdekében egyszerűen használhatja a -én
opció, amely szó szerint megmondja a grep
parancs „Felejtsd el azt az esetet, amibe belehelyeztem a karakterláncot, és csak keresd meg az összes megfelelő mintát a fájlban.”
Szintaxis:
grep -i [karakterlánc] [fájlnév]
Példa:
grep -i peace sample.txt
Kimenet:
INDIA A BÉKÉTSZERETŐ EMBEREK GYÖNYÖRŰ ORSZÁGA. India a békét szerető emberek gyönyörű országa.
Az összes egyező sor megjelenik, függetlenül attól, hogy a megfelelő karakterlánc milyen esetben van.
Rekurzív keresés segítségével grep
parancs
A -r
Az opció megkeresi az összes fájlt egy könyvtárban és annak összes alkönyvtárában, amely megegyezik a felhasználó által a parancsban megadott karakterlánc-mintával.
Szintaxis:
grep -i -r [karakterlánc] [fájl_útvonala]
Példa:
grep -i -r tomcat /home/gaurav/munkaterület
A karakterlánc itt a „tomcat”, és a rendszer a könyvtár munkaterületén keresi. A „munkaterület” könyvtárban található összes alkönyvtár és fájl is megvizsgálásra kerül, hogy megfeleljen a megadott karakterlánc-mintának.
Kimenet:
./context_log.policy:// catalina.policy – Biztonsági szabályzat engedélyei a Tomcat 7-hez ./context_log.policy:// Megjegyzés: Ha a tomcat-juli.jar a ${catalina.base} mappában található, és nem a ${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-ok ./catalina.properties:# - Tomcat API JAR-ok ./catalina.properties:# - Tomcat JAR-ok ./catalina.properties:# - Gyakori, nem Tomcat JAR-ok ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:#ina tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache=500 /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml:
JEGYZET: Használata közben a -r
opcióval a grep
parancsban a fájl elérési útját kell megadnunk, nem pedig a fájlnevet
Egész szavak keresése csak ezzel grep
parancs
Sokszor előfordul, hogy egy szóra keres, de végül feltölti a terminált a megfelelő sorokkal, amelyek tartalmazzák a megfelelő szót, de nem önálló szóként. Láthatja azokat a sorokat, amelyek olyan szavakat tartalmaznak, amelyek alrésze az Ön által megadott karakterlánc.
Összetévedtél ezzel? Ne aggódjon, sokkal könnyebb megérteni, ha megkapja a példát.
Példa:
Itt szeretnék keresni egy egyedi „kosár” szóban, és megjeleníteni a szónak megfelelő összes sort a „sample.txt” fájlban.
grep -i kosár minta.txt
Kimenet:
Descartes koordináták fontossága az összes Descartes koordináták. a bikakocsi használata gyakori látvány a faluban a mezőgazdasági munkáknál. A kocsi eltűnt, mert a fiú szabadon hagyta.
A kimenetben megfigyelhető, hogy a „derékszögű” szó tartalmazza a „kocsi” szót is, így a „derékszögű” szót tartalmazó sorok is megjelennek, bár nem akarjuk, hogy megjelenjenek.
Használhatja a -w
opcióval a grep
parancsot, hogy megoldja ezt a kétértelműséget.
Szintaxis:
grep -i -w [karakterlánc] [fájlnév]
Példa:
grep -i -w kosár minta.txt
Kimenet:
A bikaszekér használata gyakori látvány a faluban a mezőgazdasági munkáknál. A kocsi eltűnt, ahogy a fiú szabadon hagyta.
Most, ha használta a -w
opcióval grep
csak azokat a sorokat fogja látni, amelyekben a „kocsi” szó egészében szerepel.
Fordított keresés a használatával grep
parancs
grep
parancs fordított módon is használható. Használhatjuk a grep
parancsot fordítva úgy, hogy elrejti az egyező sorokat, és csak azokat a sorokat jeleníti meg, ahol az egyezés nem található. Ezt megteheti a -v
opcióval a grep
parancs.
Szintaxis:
grep -i -v [karakterlánc] [fájlnév]
Példa:
grep -i -v erőforrásminta.txt
Kimenet:
INDIA A BÉKÉTSZERETŐ EMBEREK GYÖNYÖRŰ ORSZÁGA. India a törvényhozás, a végrehajtó hatalom és az igazságszolgáltatás három pilléren áll. India a békét szerető emberek gyönyörű országa. derékszögű koordináták az összes derékszögű koordináta fontossága. A bikaszekér használata gyakori látvány a faluban a mezőgazdasági munkáknál. Ez a mintafájl vége.
A kimenetben az összes többi sor megjelenik, kivéve az „erőforrás” szót tartalmazó sort.
Az egyező karakterlánc előfordulásának számlálása
A kimenet a grep
parancs általában nagyon hosszú, ha a fájlban lévő adatok kiterjedtek. Minél több egyezés van, annál hosszabbak a kimenetei grep
parancs. A Linux egy lehetőséget kínál, ahol megjelenítheti az egyezés előfordulásának számát.
Szintaxis:
grep -i -c [karakterlánc] [fájlnév]
Példa:
grep -i -c india minta.txt
Kimenet:
gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$
Itt a kimenet egy szám, amely az „India” szó előfordulásának száma a sample.txt fájlban.
JEGYZET: Én használtam a -én
opció minden példában, hogy biztonságban tudjon lenni a kis- és nagybetűk érzékenységével kapcsolatban. Ha biztos a keresett szó kis- és nagybetűjében, akkor nyugodtan kihagyhatja a -én
választási lehetőség.
Következtetés
Megtanultuk az alapvető felhasználási módokat grep
parancsot a Linux rendszereken ebben az oktatóanyagban. Megtanultuk azt is, hogy az igényeinknek leginkább megfelelő tartalmat jelenítsünk meg, és ne zsúfoljuk túl a terminált sorokkal. grep
A parancs biztosan időt takarít meg, ha nagy adathalmazok vizsgálatára használjuk.