Ebben a cikkben különböző példákkal magyarázzuk 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óra telepítve van. Ha azonban hiányzik a rendszeréből, akkor a következő módszerrel telepítheti a Terminálban:
$ sudo apt-get install grepA Grep használatával
Itt található a grep parancs alapvető szintaxisa. A grep-el kezdődik, majd néhány opció és keresési feltétel, majd a fájl nevével zárul.
$ grep [opciók] MINTA [FÁJL ...]Fájlok keresése
Ha a fájlnévre keresni szeretne egy könyvtárban, amely tartalmaz egy adott karakterláncot, akkor a grep használatával a következőket teheti:
$ ls -l | grep -i “húrPéldául olyan fájlnév keresésére, amely tartalmaz egy karakterláncot „teszt“, A parancs a következő lenne:
$ ls -l | grep -i tesztEz a parancs felsorolja az összes fájlt, amely tartalmazza a „teszt”.
Karaktersorozat keresése egy fájlban
Karaktersorozat kereséséhez egy adott fájlban a következő parancsszintaxist használhatja:
$ grep “string” fájlnévPéldául egy karakterlánc kereséséretesztNevű fájlban tesztfájl1, a következő parancsot használtuk:
$ grep „alkalmazott” tesztfájl1
A fenti kimenet visszaadta a mondatot a tesztfájl1 amely tartalmazza a „munkavállaló”.
Karakterlánc keresése több fájlban
Karaktersorozat kereséséhez több fájlban a következő parancsszintaxist használhatja:
$ grep “string” fájlnév1 fájlnév2Például egy „alkalmazott” karakterlánc keresésére a testfile1 és testfile2 fájlokban a következő parancsot használtuk:
$ grep „alkalmazott” tesztfájl1 tesztfájl2
A fenti parancs felsorolja az összes sort, amely tartalmazza az „alkalmazott” karakterláncot mind a testfile1, mind a testfile2 fájlból.
Helyettesítő karaktert is használhat, ha az összes fájlnév ugyanazzal a szöveggel kezdődik.
$ grep „string” fájlnév *Például, ha a fenti példát vesszük, amelyben a fájlneveink voltak tesztfájl1 és tesztfájl2 , a parancs a következő lenne:
$ grep „alkalmazott” tesztfájl *
Karaktersorozat keresése a fájlban a karakter nagybetűinek figyelmen kívül hagyásával
Leggyakrabban akkor találkozott ezzel, amikor a grep használatával keres valamit, de nem kap kimenetet. Ez egy karakterlánc keresése során előforduló esetkülönbség miatt következik be. Mint a példánkban, ha tévesen használjuk aMunkavállaló" ahelyett "munkavállaló”, Akkor nullát ad vissza, mivel a fájlunk tartalmazza a„munkavállaló”Kisbetűvel.
A grep után az -i flag használatával utasíthatja a grepet, hogy hagyja figyelmen kívül a keresési karakterlánc esetét:
$ grep -i „string” fájlnév
Az -i zászló használatával a parancs végrehajtja a kis- és nagybetűk közötti keresést, és visszaadja az összes "munkavállaló”, Anélkül, hogy figyelembe vennénk a betűket nagy- vagy kisbetűvel.
Keresés a reguláris kifejezés használatával
Megfelelő használat esetén a reguláris kifejezés nagyon hatékony tulajdonság a grep-ben. A Grep paranccsal definiálhat egy reguláris kifejezést kezdő és befejező kulcsszóval. Ezzel nem kell begépelnie az egész sort a grep paranccsal. A következő szintaxis használható erre a célra.
$ grep “kezdő kulcsszó.* endKeyword ”fájlnévPéldául a testfile1 nevű fájlban egy sor keresésére, amely az „this” karakterlánccal kezdődik és az „data” karakterlánccal végződik, a következő parancsot használtuk:
$ grep “ezt.* adatok ”tesztfájl1
Ez kinyomtatja a teljes sort a tesztfájl1 tartalmazza a kifejezést („this” kezdő kulcsszó és „data” végző kulcsszó).
Adjon meg egy sor sort a keresési karakterlánc után / előtt
Megjelenítheti a fájlban a sorok számát a karakterlánc egyezése előtt / után, valamint magát az illesztett karakterláncot is. A következő szintaxis használható erre a célra:
$ grep -AN sorszám jelenik meg, miután a karakterlánc illeszkedik a megadott fájlba, beleértve az egyeztetett karakterláncot is.
Például ez a mintafájlunk tesztfájl2.
A következő parancs kiadja az illesztett sort, amely tartalmazza a "munkavállaló”, Az utána lévő 2 sorral együtt.
$ grep -A 2 -i „alkalmazott” tesztfájl2
Hasonlóképpen, az N számsor megjelenítéséhez az illesztett karakterlánc előtt egy adott fájlban használja a következő szintaxist:
$ grep -BN sor sor megjelenítéséhez a karakterlánc körül egy adott fájlban használja a következő szintaxist:
$ grep -CA keresés kiemelése
Greppelés alapértelmezés szerint az egyező vonalak nyomtatásával, de nem mutatja, hogy a vonal mely része illeszkedik. Ha a -color opciót használja a grep-kel, akkor az megmutatja, hogy a megmunkálási húrok hol jelennek meg a fájljában. Grep alapértelmezés szerint használja a piros színt a kiemeléshez.
A következő szintaxis használható erre a célra:
$ grep „string” fájlnév - szín
A mérkőzések számának megszámlálása
Ha meg szeretné számolni, hogy egy adott fájl hányszor jelenik meg egy adott fájlban, használhatja a grep -c opciót. Csak a mérkőzések számát adja vissza, nem pedig magát a mérkőzést. A következő szintaxis használható erre a célra:
$ grep -c „string” fájlnévEz a mintafájlunk így néz ki:
Az alábbiakban bemutatunk egy példát egy parancsra, amely visszaadta a szó szorzatát fájl nevű fájlban jelent meg tesztfájl3.
Fordított keresés
Néha fordított keresést szeretne végrehajtani, amely az összes sort megjeleníti, kivéve a bemenetnek megfelelő sort. Ehhez egyszerűen használja a -v jelzőt, majd a grep parancsot:
$ grep -v “string” fájlnévPéldául az összes sor megjelenítéséhez egy fájlban tesztfájl3 amelyek nem tartalmazzák a „account” szót, a következő parancsot használtuk:
$ grep -v „account” tesztfájl3
A Grep használata más parancsokkal
A Grep segítségével a parancsok kimenetéből kiszűrhető a kívánt eredmény is. Például a „apt -installed list ” parancskimenetet, csak azokat a csomagokat szeretné megtalálni, amelyeket automatikusan telepített, az eredményt a grep segítségével kiszűrheti az alábbiak szerint:
$ apt - telepített lista | grep automata
Hasonlóképpen, az lscpu részletes információkat nyújt a CPU-ról. Ha csak a CPU architektúrájára vonatkozó információk érdeklik, akkor a következő paranccsal szűrheti ki:
$ lscpu | grep építészet
Ebben a cikkben néhány példát ismertettünk, amelyek segítenek megérteni a grep parancsokat és azok használatát különböző körülmények között. Ha erősen megfogja a grep parancsot, akkor sok időt takaríthat meg, ha nagy konfigurációs vagy naplófájlokat kell megnéznie, és ezeken keresztül hasznos információkat kell átkutatnia.