Grep parancs Linux alatt

Grep Command Linux



A Grep (globális reguláris kifejezés nyomtatása) parancs a legerősebb és rendszeresen használt Linux parancssori segédprogram. A Grep használatával hasznos információkat kereshet a keresési feltételek megadásával. Egy adott kifejezésmintát keres egy megadott fájlban. Amikor talál egyezést, kinyomtatja a fájl összes sorát, amelyek megfeleltek a megadott mintának. Jól jön, ha nagy naplófájlokat kell szűrni.

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-énteszt

Ez 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év

Például egy karakterlánc kereséséhez teszt nevű fájlban tesztfájl1 , a következő parancsot használtuk :

$markolatalkalmazotti tesztfájl1

A 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év2

Pé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ájl2

A 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év

Az –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év

Pé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ájl1

Kinyomtatja 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év

N 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ájl2

Hasonló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év

Egy 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év

A 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ín

A 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év

A 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év

Pé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ájl3

A 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észet

Ebben 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.