logo

Grep parancs Linux/Unix rendszerben példákkal

A „grep” parancs jelentése 'globális reguláris kifejezés nyomtatása' . grep parancs szűri a fájl tartalmát, ami megkönnyíti a keresést.

Ez egy parancssori segédprogram, amellyel egyszerű szöveges adatcsoportokban kereshet olyan sorokat, amelyek megegyeznek a reguláris kifejezésekkel. A név 'markolat' parancsból, azaz az ed-ből származik, amely ugyanazt a hatást tartalmazza. Eredetileg a grep Unix operációs rendszerhez készült, de később minden Unix-szerű rendszerre és néhány másikra, például OS 9-re is elérhetővé vált.

A grep szűrő megkeres egy adott karaktermintához tartozó fájlt, és megjelenít minden sort, amely tartalmazza ezt a mintát. A karaktereket idézőjelbe kell tenni, ha a mintaparaméterben a shell számára speciális jelentéssel szerepelnek. Általában a teljes mintát egy idézőjelbe kell tennünk, ha a minta paramétere nem egy közös karakterlánc.

Egy olyan kifejezésben, mint az [a-z], a mínuszjel (-) cml egy tartományt ír le az aktuális leválogatási sorrend alapján. Egy rendezési sorrend meghatározhat egyenértékű osztályokat a karaktertartományokban. A grep parancs stdin-t feltételez, ha nem említenek fájlokat.

A mintát a fájlban található reguláris kifejezésnek nevezzük. A minta korlátozott reguláris kifejezések az egrep vagy az ed parancs formátumában. A grep parancs szilárd, nem determinisztikus algoritmust alkalmaz. Akkor hasznos, ha nagy naplófájlokat kell szűrnünk.

A grep rövid története

A címe előtt a grep egy bizalmas segédprogram volt, amelyet a Ken Thompson több minta fájlok kereséséhez. Ismeretlen a létezéséről, Doug Mcllroy megkérte Thompsont, hogy határozzon meg egy ilyen függvényt. Azt válaszolta, hogy egyik napról a másikra eszébe jut egy ilyen segédprogram. Thompson fejlesztéseket végzett és korrigálta a lápokat körülbelül egy órán keresztül a néven ismert programján 's' (vagy keressen). Másnap bemutatta a funkciót Mcllroynak, aki azt mondta, hogy ugyanaz, mint amit akar. Thompson beszámolója leírhatja azt a hiedelmet, hogy a grep parancsot egyik napról a másikra adták meg.

A Thompson a kezdeti verziót PDP-11 assembly nyelven adta meg, hogy támogassa Lee E. McMohan a Federalist Papers szövegének ellenőrzése az egyes lap szerzőiségének eldöntéséhez. Az ed szövegszerkesztő támogatta a reguláris kifejezést, de nem használható ilyen nagy szövegeknél; Thompson ezt a kódot egy önálló eszközbe másolta. Kiválasztotta az esedékes nevet a szerk. a grep parancs minden sort ugyanúgy nyomtat, mint a leírt mintát. Először a grep került a Unix 4-es verziójába, mondván 'általában prototipikus szoftvereszközként emlegetik' , Mcllroy jóváhagyta a grep-et a 'visszafordíthatatlanul beépülő' Thompson eszközök filozófiája Unixban.

A grep megvalósításai

Számos grep-megvalósítás létezik számos szoftverfejlesztő környezetben és operációs rendszerben. A korai verziók az fgrep-et és az egrep-et tartalmazták, amelyeket a Unix 7-es verziójában vezettek be. Az egrep verzió támogatja egy kiterjesztett reguláris kifejezés szintaxisát, amelyet Alfred Aho tartalmazott Ken Thompson eredeti reguláris kifejezésének megvalósítása után. Az fgrep verzió minden rögzített karakterlánc-listát megtalál a Aho-Corasick karakterláncillesztő algoritmus . Ezek a bináris verziók elérhetők a modern rendszerekben, amelyek a grephez csatlakoznak, vagy grep parancsfájlt hívnak a megfelelő jelzővel, miközben általában a POSIX rendszereken vannak telepítve.

Egyéb parancsok közé tartozik a 'markolat' A kifejezésre szolgáló szót olyan eszközöket találnak, amelyek általában a reguláris kifejezések egyezésétől függenek. Például a segédprogram, pl. 'pgrep' , azokat a folyamatokat mutatja, amelyek címe megegyezik a megadott reguláris kifejezéssel.

  • A Grep annak a beépített függvénynek a címe, amely egy listában azokat az elemeket keresi, amelyek szórakoztatnak egy bizonyos tulajdonságot a listában. Perl programozási nyelv.
  • Általában ezt a magasabb rendű függvényt hívják 'szűrő' vagy 'ahol' más nyelven.
  • A parancs, azaz pcregrep , egy grep megvalósítás, amely a Perl reguláris kifejezésének szintaxisát használja. Ugyanez a funkció hozzáadható a grep GNU verzióhoz a -P kapcsolóval.
  • Továbbá a grep portok (pl GnuWin32 és Cygwin ) futtassa Microsoft Windows rendszeren. Néhány Windows-verzió ugyanazt a findstr vagy qgrep parancsot biztosítja.
  • Ezenkívül a grep parancs az ASCII MSX-DOS2 eszközeinek része az MSX-DOS 2-es verziójához.
  • Az fgrep, egrep és grep parancsok az IBM i operációs rendszerbe kerültek.
    Az Adobe InDesign szoftver GREP funkciókkal rendelkezik (a CS3 kiadás óta) a GREP módosítása/keresése lapon, és a CS4 használatával van megadva a 'GREP stílusok' bekezdésstílusok.

Hogyan telepítsem a grep-et Linuxra?

A Grep szinte minden Linux disztribúcióban előre telepítve van. Abban az esetben azonban, ha a terminál ablakában az alábbi paranccsal telepíthetjük, ha hiányzik a rendszerünkből:

 $ sudo apt-get install grep 

grep pipával

A „grep” parancsot általában pipe esetén használják (|) .

írjon json-t a python fájlba

Szintaxis:

 command | grep 

Példa:

 cat marks.txt | grep 9 

Linux Grep szűrők1

Tekintse meg a fenti pillanatképet, a grep parancs kiszűri az összes „9”-et tartalmazó adatot.

grep cső nélkül

Cső nélkül is használható.

Szintaxis:

 grep 

Példa:

 grep 9 marks.txt 

Linux Grep szűrők2

Nézze meg a fenti pillanatképet, a grep parancs ugyanazt a munkát végezze el, mint az előző példában, de pipe nélkül.

grep opciók

    grep -vM: A 'grep -v' parancs olyan sorokat jelenít meg, amelyek nem egyeznek a megadott szóval.

    Szintaxis:

     grep -v 

    Példa:

     grep -v 9 marks.txt 

    Linux Grep szűrők3

    Nézze meg a fenti pillanatképet, parancsot 'grep -v 9 marks.txt' olyan sorokat jelenít meg, amelyek nem tartalmazzák a '9' keresőszavankat.

    grep -i: A 'grep -i' parancs kis- és nagybetűk megkülönböztetése nélkül szűri a kimenetet.

    Szintaxis:

     grep -i 

    Példa:

     grep -i red exm.txt 

    Linux Grep szűrők4

    Nézze meg a fenti pillanatképet, parancsot 'grep -i red exm.txt' megjeleníti az összes 'piros' betűt tartalmazó sort, akár nagy, akár kisbetűvel.

    grep -A/ grep -B/ grep -C

    grep -A parancs a megjelenítésére szolgál sor az eredmény után .

    A grep -B parancs a sor az eredmény előtt .

    A grep -C parancs a sor utána és előtte az eredmény.

    Az (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) segítségével tetszőleges számú sort jeleníthet meg.

    Szintaxis:

     grep -A grep -B grep -C 

    Példa:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Linux Grep szűrők5

    Nézze meg a fenti pillanatképet, parancsot 'grep -A1 sárga exm.txt' megjeleníti a keresett sort a következő sorral, paranccsal 'grep -B1 sárga exm.txt' megjeleníti a keresett sort egy megelőző sorral és paranccsal 'grep -C1 sárga exm.txt' megjeleníti a keresett sort egy megelőző és egy következő sorral.