Szintaxis
$ grep 'pattern1 \ | pattern2' fájlnévA reguláris kifejezést mindig egyetlen idézetben írják. Két nevet elválasztunk a fordított perjel és a változtatás operátorral. A parancs a fájlnévvel fejeződik be. A grep rekurzív műveletek során egyetlen fájlnév helyett könyvtárat vagy teljes elérési utat használunk.
Előfeltétel
Ebben a cikkben megtanuljuk a grep funkcióját több minta és karakterlánc keresésében. Ehhez a virtuális dobozon futnia kell Linux operációs rendszernek. Telepítenie kell a rendszerére. A konfigurálás után hozzáférhet az összes alkalmazáshoz. Miután jelszó megadásával bejelentkezett a felhasználóhoz, folytassa a terminálhéj parancssorával.
Keresés több mintával egy fájlban a Grep használatával
Ha egy adott fájlban több mintát vagy karakterláncot akarunk keresni, akkor a grep funkcióval válasszon egy fájlt a parancsban egynél több beviteli szó segítségével. A '\ |' szót használjuk operátorok két minta szétválasztására egy parancsban.
$ grep 'technikai \ | job' fájl.txtA parancs a grep működését jelképezi. Mindkét említett fájlt a fájlban fogják keresni.txt. A keresett szavak kiemelésre kerülnek a kimenet teljes szövegében.
Kétnél több szó kereséséhez továbbra is ugyanazzal a módszerrel adjuk hozzá őket.
$ grep 'graphic \ | photoshop \ | plakátok' fileb.txt
Keressen több karakterláncot az ügy figyelmen kívül hagyásával
A Linux grep függvényében az esetérzékenység fogalmának megértéséhez vegye figyelembe a következő példát. Két parancs működik a grep-en. Az egyik '-i' -vel van, a másik pedig anélkül. Ez a példa bemutatja a parancsok közötti különbségeket. Az első azt mutatja, hogy két szó keresésre kerül egy adott fájlban. Amint azonban az „Aqsa” parancs jelzi, A betűvel kezdődik. Így nem lesz kiemelve, mert egy adott fájlban ez a szöveg kisbetűvel van.
$ grep 'Aqsa \ | testvér' fájl20.txtCsak a testvér szót veszi figyelembe, amely a kimeneten látható lesz.
A második példában figyelmen kívül hagytuk a kis- és nagybetűk érzékenységét az „-I” jelző használatával. Ez a funkció mindkét szóban keresni fog, és a kimenet kiemelésre kerül. Függetlenül attól, hogy az „Aqsa” szót nagybetűvel írják-e vagy sem, a grep ugyanazt az egyezést keresi a fájlban lévő szövegben. Tehát mindkét parancs hasznos a maga módján.
$ grep -I 'Aqsa \ | testvér' fájl20.txt
Több egyezés számlálása egy fájlban
A Count funkció segít megszámolni egy szó vagy szavak előfordulását egy adott fájlban. Például, ha szeretne tudni a rendszerben előforduló hibákról. A részleteket a naplófájl rögzíti. Ahhoz, hogy ezeket az információkat egy adott mappában tárolja, meg kell írnia a mappák útvonalát. Ez a példa azt mutatja, hogy a naplófájlokban 71 hiba történt.
Pontos egyezések keresése egy fájlban
Ha pontos egyezést szeretne találni a rendszere fájljaiban, akkor a pontos rendezéshez a „-w” jelzőt kell használnia. Idéztünk egy egyszerű és átfogó példát. Az alábbi példában vegye fontolóra a „-w” nélküli keresést, ez a parancs mindkét szót úgy hozza meg, hogy azok megfeleljenek az adott bemenetnek. De a „-w” jelző használatával a keresés korlátozott lesz, mivel a beviteli szavak csak az első karakterlánccal egyeznek. A második szó nincs kiemelve, mert a „-w” lehetővé teszi a mintához való pontos illesztést.
$ -iw 'hamna \ | house' fájl21.txtItt -I is használom a kis- és nagybetűk érzékenységének eltávolítására a szöveg keresésekor.
Amint a fotón látható, az eredmények nem ugyanazok. Az első parancs az összes kapcsolódó adatot egész karakterláncokkal hozza, míg a második parancs megmutatja, hogy a pontos adatok egyeznek-e a grep-en keresztül több karakterlánc keresésekor.
Grep egynél több mintához egy adott fájlkiterjesztés típusban
A keresés az összes fájlon belül történik. Önön múlik, ha fájlnév megadásával keres. Csak bizonyos fájlokban fog keresni. De egy fájlkiterjesztés biztosításával az adatok ugyanannak a kiterjesztésnek az összes fájlján keresnek. Kétféle példa van a kapcsolódó eredmény ábrázolására. Az első példát figyelembe véve a hibafájlok az összes fájlba beleszámítanak .napló kiterjesztés. A „-c” a számláláshoz használható.
$ grep -c 'figyelmeztetés \ | hiba' / var / log / *.napló
Ez a parancs azt jelenti, hogy a fájlokat a .napló kiterjesztés. A mérkőzések száma megjelenik a kimenetben, hogy jobban megmutassa a grep-et az adott fájlkiterjesztéssel.
A második példában két szót használtunk a Linux fájljaiban a szöveg kiterjesztésével. Minden adat számok formájában jelenik meg. A 0 azt jelzi, hogy nincs egyező adat, míg a 0-n kívül egyezés létezik.
$ grep -c 'aqsa \ | my' / home / aqsayasin / *.txt
Több minta rekurzív keresése fájlban
Alapértelmezés szerint az aktuális könyvtárat használják, ha a parancsban nincs megemlítve könyvtár. Ha a saját maga által kiválasztott könyvtárban szeretne keresni, akkor meg kell említenie. A „-r” operátor a grep rekurzív használatára szolgál.A / home / aqsayasin / a fájlok elérési útját mutatja, míg a *.A txt a kiterjesztést mutatja. Szöveges fájlok lesznek a grep célpontjai a rekurzív keresésre.
$ grep -R 'műszaki \ | szabad' / home / aqsayasin / *.txt
A kívánt kimenetet kiemeli az eredmény, amely e szavak létezését mutatja.
Következtetés
A fent említett cikkben különféle példákat idéztünk annak érdekében, hogy a felhasználó könnyebben megértse a parancsok működését, ha több mintát keres Linux alatt. Ez az útmutató segít meglévő ismereteinek bővítésében.