Használta korábban a grep-et? Legtöbbször az alapvető grep-trükk képes elvégezni a munka nagy részét. A grep azonban rengeteg lehetőséget kínál a keresés végrehajtására és a kimenet finomabb beállítására egy használhatóbb verzióra. Ebben a cikkben nézzük meg a grep parancs használatát.
Grep használat
A létellenőrzés
Ha bármilyen Linux disztribúciót futtat, akkor a grep már telepítve van. Futtassa a következő parancsot a terminálon.
grep --verzió
Ez a parancs a jelenleg telepített grep verziójának megjelenítésére szolgál. Szükségünk van egy bemutató fájlra. Esetemben létrehozok egy szöveges fájlt, amely tartalmazza a rendszerem összes telepített csomagját.
Alapok
A grep alapvető használata a következő felépítést követi.
grepVagy a könnyebb megértés érdekében használja ezt.
grepEbben az esetben a grep keresést hajt végre a fájlban, és kinyomtatja az összes sort, amely tartalmazza a mintát (keresési kifejezés).
grep python ~ / Desktop / PackageList.txt
Grep a „PackageList.txt ”Korábban generáltam és kinyomtattam az összes sort, amely tartalmazza a„ python ”szót.
Ugyanez a művelet más módon is elvégezhető. Nézze meg a következő példát.
cat ~ / Desktop / PackageList.txt | grep python
Itt a „cat” paranccsal elküldtem a „PackageList.” Fájl tartalmát.txt ”grepelni. A cat kimenetének felhasználásával a grep elvégezte a keresést, és kinyomtatta azokat a sorokat, amelyek tartalmazzák a keresési kifejezést.
Most jön egy szórakoztató dolog. Szó szerint több grep parancsot is egymásra rakhat.
cat ~ / Desktop / PackageList.txt | grep - | grep p | grep python
Az első grep kötőjellel, a második p-vel, a végső grep pedig a python-vonalakra szűrődik le. Van értelme?
Kis- és nagybetűk érzékenysége
A keresés során a kis- és nagybetűk érzékenysége a fő kérdés. Alapértelmezés szerint a grep megkülönbözteti a kis- és nagybetűket.
Például a „Python” keresése nem mutat eredményt.
cat ~ / Desktop / PackageList.txt | grep Python
A grep kisbetű érzéketlenné tételéhez adja hozzá a következő opciót.
cat ~ / Desktop / PackageList.txt | grep -i Python
Fájlkeresés
Tegyük fel, hogy van egy könyvtárad, amelyben számos szövegfájl található. A cél az, hogy azonosítsa azokat a fájlokat, amelyek tartalmaznak vagy nem tartalmaznak mintát (keresési kifejezés).
Ezt a módszert nagyon hasznosnak találom, ha egy halom naplófájlban keresgélek. Mivel nincs időm minden fájlt manuálisan megnyitni és ellenőrizni, a grep-t kell elvégeznem.
A mérkőzést tartalmazó fájlok listázásához használja a „-l” jelzőt.
grep -l
Amint az eredményből kiderül, a „python” kifejezés megtalálható az „Asztal” könyvtárban található mindhárom fájlban.
Ha fájlokat szeretne egyeztetés nélkül felsorolni, használja a „-L” jelzőt.
grep -L
"Nem egyezik.a txt ”az egyetlen fájl, amely nem tartalmazza a„ python ”kifejezést.
Fordított keresés
A grep alapértelmezett viselkedése az, hogy csak a megfelelő mintával rendelkező vonalakat nyomtatja ki? Ideje megfordítani a folyamatot. Ezúttal csak a vonalakat fogjuk kinyomtatni az egyező minta nélkül.
Csak adja át a „-v” opciót a grepeléshez.
cat ~ / Desktop / PackageList.txt | grep -i -v Python
Sorok nyomtatása a mérkőzés előtt / után
Alapértelmezés szerint a grep csak a keresési mintának megfelelő sort nyomtatja ki. Ezzel a technikával elmondhatja a grep-nek, hogy nyomtassa ki a sorokat a mérkőzés előtt / után is.
A mérkőzések előtti sorok nyomtatásához használja a következő szerkezetet.
grep -B
Itt az 5 az a számsor, amelyet a grep kinyomtat a megfelelő sor ELŐTT.
A mérkőzést követő sorok nyomtatásához használja a következőt.
grep -A
Mi lenne, ha mind a megfelelő vonal előtt, mind utána nyomtatna? Ebben az esetben használja a „-C” jelzőt.
grep -C
Sorszám
Amikor a grep megjeleníti a kimenetet, nem említi a sorszámot. A társított sorszám (ok )hoz használja az „-n” jelzőt.
grep -n
Egyetlen szó
A „-w” jelző használata esetén a grep a mintát egy egész szóként kezeli.
grep -w
A grep keresés korlátozása
A Grep lehetővé teszi a fájlban keresendő sorok számának megadását. Ez a módszer akkor hasznos, ha nagy fájlokkal (például rendszernaplóval) foglalkozik. Használja a „-m” jelzőt.
grep -m
Rekurzív keresés
Ez az egyik leghasznosabb funkció, amelyet a grep nagy igénybevételre kínál. A Grep rekurzív módon kereshet egy könyvtárban, és megtalálja az összes találatot az összes fájlból, amellyel szembesül.
grep -RVagy,
grep -r
Gyakran előfordul, hogy ezt a rekurzív függvényt használom az „-l” jelzővel együtt.
Csendes mód
A Grep „csendes” módban futtatható. „Csendes” üzemmódban a grep nem nyomtat kimenetet a terminálra. Ehelyett 0-t (legalábbis találtak egyezést) vagy 1-et (nem található találat) ad vissza.
grep -qvisszhang $?
Regex
A Grep lehetővé teszi a regex (reguláris kifejezés) kereséseket is. Ez a grep mint kereső eszköz komplexitásának és használhatóságának teljesen új szintjét hozza fel.
Például zárójelek segítségével egyszerre kereshet mind a „túl”, mind a „kettő” kifejezésre.
macska ~ / Asztal / gpl-3.0.txt | grep t [jaj]
Ez a következő példa csak akkor nyomtatja ki a sort, ha az egyezés a sor legelején történik.
grep ^ GNU ~ / Desktop / gpl-3.0.txt
Ami a befejezés illesztését illeti, használja ezt.
grep you $ ~ / Desktop / gpl-3.0.txt
Ha Perl regexet akar használni, akkor használja a „-P” jelzőt. Perl regexként kezeli a mintát.
grep -PVégső gondolatok
A Grep rengeteg lehetőséget kínál a keresési funkció testreszabására. A regex elérhetősége egy teljesen új horizontot nyit meg a grep lehetséges használatában. A legjobb dolog az, hogy használhatja az általános és a Perl regexet is; amelyikkel jól érzed magad.
A legrészletesebb magyarázatért mindig keresse meg a man oldalt.
férfi grep
Egészségére!