Ebben a cikkben különböző példákkal ismertetjük a grep segédprogram használatát. A Debian 10 -et fogjuk használni a cikkben említett parancsok és módszerek magyarázatához.
A Grep telepítése
A Grep a legtöbb Linux disztribúcióban telepítve van. Ha azonban hiányzik a rendszerből, telepítheti a következő módszerrel a terminálon:
$sudo apt-get install markolat
A Grep használata
Itt található a grep parancs alapvető szintaxisa. A grep -vel kezdődik, majd néhány beállítás és keresési feltétel, majd a fájlnévvel fejeződik be.
$markolat [lehetőségek]MINTA[FILE ...]
Fájlok keresése
Ha fájlnevet szeretne keresni egy könyvtárban, amely egy adott karakterláncot tartalmaz, használja a grep parancsot a következő módon:
$ls -az | markolat -énhúr
Például egy karakterláncot tartalmazó fájlnév kereséséhez teszt , a parancs a következő lenne:
$ls-az| markolat-éntesztEz a parancs felsorolja a karakterláncot tartalmazó összes fájlt teszt .
Karakterlánc keresése a fájlban
Egy karakterlánc kereséséhez egy adott fájlban a következő parancsszintaxist használhatja:
$markolatkarakterlánc fájlnévPéldául egy karakterlánc kereséséhez teszt nevű fájlban tesztfájl1 , a következő parancsot használtuk :
$markolatalkalmazotti tesztfájl1A fenti kimenet visszaadta a mondatot a tesztfájl1 amely tartalmazza a karakterláncot munkavállaló .
Karakterlánc keresése több fájlban
Ha karakterláncot szeretne keresni több fájlban, akkor használja a következő parancsszintaxist:
$markolatkarakterlánc fájlnév1 fájlnév2Például egy karakterlánc -alkalmazott kereséséhez a két fájlunkban: testfile1 és testfile2, a következő parancsot használtuk:
$markolatalkalmazott tesztfájl1 tesztfájl2A fenti parancs felsorolja az összes sort, amely tartalmazza a karakterlánc -alkalmazottat a tesztfájl1 és a tesztfájl2 fájlokból.
Használhat helyettesítő karaktert is, ha az összes fájlnév ugyanazzal a szöveggel kezdődik.
$markolatkarakterlánc fájlnév*Például, ha a fenti példát vesszük, amelyben fájlneveink voltak tesztfájl1 és tesztfájl2 , a parancs a következő lenne:
$markolatalkalmazotti tesztfájl*Keressen egy karakterláncot a fájlban, figyelmen kívül hagyva a karakterlánc kis- és nagybetűit
Leggyakrabban találkozott ilyennel, amikor a grep használatával keres valamit, de nem kap kimenetet. Ez azért fordul elő, mert a karakterlánc keresése során az esetek nem egyeznek. Mint a példánkban, ha tévesen használjuk Munkavállaló ahelyett munkavállaló , nullát ad vissza, mivel fájlunk tartalmazza a karakterláncot munkavállaló kisbetűvel.
Azt mondhatja a grep -nek, hogy hagyja figyelmen kívül a keresési karakterlánc esetét, ha a grep után az –i jelzőt használja a következőképpen:
$markolat–I karakterlánc fájlnévAz –i jelző használatával a parancs végrehajtja a kis- és nagybetűket megkülönböztető keresést, és visszaadja a karakterláncot tartalmazó összes sort munkavállaló benne anélkül, hogy figyelembe venné a betűket nagy- vagy kisbetűvel.
Keresés a reguláris kifejezés használatával
Ha megfelelően használja, a reguláris kifejezés nagyon hatékony funkció a grep -ben. A Grep paranccsal meghatározhat egy reguláris kifejezést kezdő és befejező kulcsszóval. Ezzel nem kell beírnia az egész sort a grep paranccsal. Erre a célra a következő szintaxis használható.
$markolatkezdő kulcsszó.*endKulcsszó fájlnévPéldául, ha egy sort keresünk a testfile1 nevű fájlban, amely ezzel a karakterlánccal kezdődik, és a karakterlánc -adatokkal végződik, a következő parancsot használtuk:
$markolatez.*adat tesztfájl1Kinyomtatja a teljes sort a tesztfájl1 tartalmazza a kifejezést (a kezdő kulcsszó ez és a befejező kulcsszó adatai).
Nyomtasson meghatározott számú sort a keresési karakterlánc után/előtt
Ezenkívül megjelenítheti a fájlban lévő sorok számát a karakterlánc -egyezés előtt/után, valamint az egyező karakterlánccal együtt. Erre a célra a következő szintaxis használható:
$markolat -NAK NEK <N>karakterlánc fájlnévN számú sor jelenik meg, miután a karakterlánc illeszkedik a megadott fájlba, beleértve az egyező karakterláncot is.
Például ez a mintafájlunk tesztfájl2 .
A következő parancs kiadja a karakterláncot tartalmazó egyező sort munkavállaló , az utána következő 2 sorral együtt.
$markolat-NAK NEK2–Alkalmazotti tesztfájl2Hasonlóképpen, ha egy adott fájlban az egyező karakterlánc előtt N számú sort szeretne megjeleníteni, használja a következő szintaxist:
$markolat -B <N>karakterlánc fájlnévEgy adott fájlban a karakterlánc körül N számú sor megjelenítéséhez használja a következő szintaxist:
$markolat -C <N>karakterlánc fájlnévA keresés kiemelése
A Grep alapértelmezés szerint egyező sorokat nyomtat, de nem mutatja, hogy a sor melyik része illeszkedik. Ha a –color opciót használja a grep használatával, akkor az megmutatja, hogy a megmunkáló karakterláncok hol jelennek meg a fájlban. A Grep alapértelmezés szerint a piros színt használja a kiemeléshez.
Erre a célra a következő szintaxis használható:
$markolatkarakterlánc fájlnév--színA mérkőzések számának számítása
Ha meg szeretné számolni, hogy egy adott szó hányszor jelenik meg egy adott fájlban, akkor használja a grep –c opciót. Csak a mérkőzések számát adja vissza, nem magát a mérkőzést. Erre a célra a következő szintaxis használható:
$markolat–C karakterlánc fájlnévA mintafájlunk így néz ki:
Az alábbiakban egy példa egy parancsra, amely visszaadta a szó hányszorosát fájlt nevű fájlban jelent meg tesztfájl3 .
Fordított keresés
Néha fordított keresést szeretne végrehajtani, amely megjeleníti az összes sort, kivéve a bemenetnek megfelelőt. Ehhez használja a –v zászlót, majd a grep parancsot:
$markolat–V karakterlánc fájlnévPéldául egy fájl összes sorának megjelenítéséhez tesztfájl3 amelyek nem tartalmazzák a számla szót, a következő parancsot használtuk:
$markolat–V számla tesztfájl3A Grep használata más parancsokkal
A Grep a kívánt parancs kiszűrésére is használható a különböző parancsok kimenetéből. Például a apt - telepített lista parancs kimenetét, csak az automatikusan telepített csomagokat szeretné megtalálni, az eredményt a grep segítségével szűrheti ki az alábbiak szerint:
$találó-telepítvelista| markolatautomatikus
Hasonlóképpen, az lscpu részletes információkat nyújt a CPU -ról. Ha csak a CPU -architektúrára vonatkozó információk érdekelnek, a következő paranccsal szűrheti ki:
$lscpu| markolatÉpítészetEbben a cikkben néhány példát írtunk le, amelyek segítenek megérteni a grep parancsokat és azok használatát különböző körülmények között. A grep parancs erős fogása sok időt takaríthat meg, ha nagy konfigurációs vagy naplófájlokat kell megnéznie, és hasznos információkat kell átszelnie rajtuk.