logo

Comandament Grep a Linux/Unix amb exemples

L'ordre 'grep' significa 'impressió d'expressió regular global' . L'ordre grep filtra el contingut d'un fitxer que facilita la nostra cerca.

És una utilitat de línia d'ordres per cercar en grups de dades de text sense línies les mateixes que una expressió regular. El nom 'agafar' prové de l'ordre, és a dir, ed, que conté el mateix efecte. Originalment, grep va ser dissenyat per al sistema operatiu Unix, però més tard va estar disponible per a tots els sistemes semblants a Unix i alguns altres com OS 9.

El filtre grep troba un fitxer per a un patró de caràcters específic i mostra totes les línies que inclouen aquest patró. Els caràcters han d'estar entre cometes si apareixen al paràmetre del patró amb un significat especial per a l'intèrpret d'ordres. Normalment, hem d'incloure tot el patró entre cometes si el paràmetre del patró no és una cadena comuna.

En una expressió com [a-z], el signe menys (-) cml descriu un interval basat en l'ordre de classificació actual. Un ordre de classificació pot especificar classes equivalents en rangs de caràcters per utilitzar-les. L'ordre grep assumeix stdin quan no s'esmenta cap fitxer.

El patró s'anomena expressió regular que es troba dins del fitxer. El patró són expressions regulars restringides en el format de l'ordre egrep o ed. L'ordre grep aplica un algorisme sòlid no determinista. És útil quan necessitem filtrar fitxers de registre grans.

Breu història del grep

Abans de ser titulat, grep era una utilitat confidencial especificada per Ken Thompson per trobar fitxers per a diversos patrons. Desconegut de la seva existència, Doug Mcllroy va demanar a Thompson que especifiqui aquesta funció. Responent que de la nit al dia pensaria en aquesta utilitat. Thompson va fer millores i va corregir bogs durant aproximadament una hora en el seu programa conegut com 's' (o buscar). L'endemà va presentar la funció a Mcllroy, que va dir que era el mateix que ell volia. El relat de Thompson pot descriure la creença que l'ordre grep es va especificar durant la nit.

Thompson va especificar la versió inicial en llenguatge ensamblador PDP-11 per donar suport Lee E. McMohan comprovant el text dels Federalist Papers per decidir l'autoria del treball individual. L'editor de text ed tenia suport per a l'expressió regular però no es podia utilitzar en un text tan gran; Thompson va copiar aquest codi a una eina autònoma. Va seleccionar el nom a causa de in ed; l'ordre grep imprimiria totes les línies igual que el patró descrit. Primer, es va afegir grep a la versió 4 d'Unix, dient això 'En general es cita com l'eina de programari prototípica' , Mcllroy va aprovar grep amb el 'irrevocablement arrelat' eines de la filosofia de Thompson a Unix.

Implementacions de grep

Una gamma d'implementacions de grep està present en diversos entorns de desenvolupament de programari i sistemes operatius. Les primeres versions incloïen fgrep i egrep, introduïdes a la versió 7 d'Unix. La versió egrep admet la sintaxi per a una expressió regular ampliada inclosa per Alfred Aho després de la implementació original de l'expressió regular de Ken Thompson. La versió fgrep troba qualsevol llista de cadenes fixes amb el Algorisme de concordança de cadenes Aho-Corasick . Aquests binaris de versió estan disponibles en sistemes moderns, connectant-se a grep o cridant a grep un script d'intèrpret d'ordres utilitzant el senyalador correcte afegit mentre es desplega generalment als sistemes POSIX.

np.concatenar

Altres ordres inclouen 'agafar' paraula per representar estan trobant eines, normalment les que depenen de les coincidències d'expressió regular. Per exemple, la utilitat, és a dir, 'pgrep' , mostra els processos els títols dels quals són els mateixos que l'expressió regular proporcionada.

  • Grep és el títol de la funció integrada que cerca els elements dins d'una llista que diverteixen una determinada propietat en el Perl llenguatge de programació.
  • Normalment, s'anomena aquesta funció d'ordre superior 'filtre' o 'on' en un altre idioma.
  • L'ordre, és a dir, pcregrep , és una implementació de grep que utilitza la sintaxi per a l'expressió regular de Perl. La mateixa funcionalitat es pot afegir a la versió grep GNU utilitzant el senyalador -P.
  • A més, els ports grep (p. ex., in GnuWin32 i Cygwin ) executar a Microsoft Windows. Algunes versions de Windows proporcionen la mateixa ordre findstr o qgrep.
  • A més, l'ordre grep forma part de les eines MSX-DOS2 d'ASCII per a la versió 2 de MSX-DOS.
  • Les ordres fgrep, egrep i grep s'han enviat al sistema operatiu IBM i.
    El programari d'Adobe InDesign té funcions GREP (des de l'edició CS3) al quadre de diàleg de la pestanya de canvi/troba 'GREP' i s'ha especificat mitjançant CS4 a la 'Estils GREP' estils de paràgraf.

Com instal·lar grep a Linux?

Grep ve preinstal·lat a gairebé totes les distribucions de Linux. No obstant això, en el cas, podem instal·lar-lo amb l'ordre següent a la finestra del terminal si falta al nostre sistema:

 $ sudo apt-get install grep 

grep amb tub

comandament superior unix

L'ordre 'grep' s'utilitza generalment amb pipe (|) .

Sintaxi:

 command | grep 

Exemple:

 cat marks.txt | grep 9 

Filtres Grep de Linux 1

Mireu la instantània anterior, l'ordre grep filtra totes les dades que contenen '9'.

grep sense tub

També es pot utilitzar sense tub.

Sintaxi:

 grep 

Exemple:

 grep 9 marks.txt 

Filtres Grep de Linux 2

Mireu la instantània anterior, l'ordre grep fa el mateix treball que l'exemple anterior però sense tub.

opcions grep

    grep -vM: L'ordre 'grep -v' mostra línies que no coincideixen amb la paraula especificada.

    Sintaxi:

     grep -v 

    Exemple:

     grep -v 9 marks.txt 

    Filtres Grep de Linux 3

    Mireu la instantània anterior, comanda 'grep -v 9 marks.txt' mostra les línies que no contenen la nostra paraula de cerca '9'.

    grep -i: L'ordre 'grep -i' filtra la sortida sense distingir entre majúscules i minúscules.

    Sintaxi:

     grep -i 

    Exemple:

     grep -i red exm.txt 

    Filtres Grep de Linux4

    Mireu la instantània anterior, comanda 'grep -i vermell exm.txt' mostra totes les línies que contenen 'vermell', ja sigui en majúscules o minúscules.

    genèrics java
    grep -A/ grep -B/ grep -C

    grep -S'utilitza una ordre per mostrar el fitxer línia després del resultat .

    L'ordre grep -B s'utilitza per mostrar el fitxer línia abans del resultat .

    L'ordre grep -C s'utilitza per mostrar el fitxer línia després i línia abans el resultat.

    Podeu utilitzar (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) per mostrar qualsevol nombre de línies.

    Sintaxi:

     grep -A grep -B grep -C 

    Exemple:

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

    Filtres Grep de Linux5

    Mireu la instantània anterior, comanda 'grep -A1 groc exm.txt' mostra la línia cercada amb la següent línia següent, l'ordre 'grep -B1 groc exm.txt' mostra la línia cercada amb una línia i una comanda anteriors 'grep -C1 groc exm.txt' mostra la línia cercada amb una línia anterior i una següent.