logo

Comando Grep en Linux/Unix con ejemplos

El comando 'grep' significa 'impresión de expresión regular global' . El comando grep filtra el contenido de un archivo, lo que facilita nuestra búsqueda.

Es una utilidad de línea de comandos para buscar grupos de datos de texto sin formato en busca de líneas que sean iguales a una expresión regular. El nombre 'agarre' proviene del comando, es decir, ed, que contiene el mismo efecto. Originalmente, grep fue diseñado para el sistema operativo Unix, pero luego estuvo disponible para todos los sistemas similares a Unix y algunos otros como OS 9.

El filtro grep busca un archivo para un patrón de carácter específico y muestra cada línea que incluye ese patrón. Los caracteres deben estar entre comillas si aparecen en el parámetro de patrón con un significado especial para el shell. Por lo general, debemos encerrar todo el patrón entre comillas si el parámetro del patrón no es una cadena común.

centos vs sombrero rojo

En una expresión como [a-z], el signo menos (-) cml describe un rango basado en el orden de clasificación actual. Una orden de clasificación puede especificar clases equivalentes en rangos de caracteres para su uso. El comando grep asume stdin cuando no se menciona ningún archivo.

El patrón se llama expresión regular que se encuentra dentro del archivo. El patrón está restringido a expresiones regulares en el formato del comando egrep o ed. El comando grep aplica un algoritmo sólido no determinista. Resulta útil cuando necesitamos filtrar archivos de registro grandes.

Breve historia del grep

Antes de su título, grep era una utilidad confidencial especificada por Ken Thompson para buscar archivos para varios patrones. Desconocido de su existencia, Doug Mcllroy Le pidió a Thompson que especificara tal función. Respondiendo que de la noche a la mañana pensaría en tal utilidad. Thompson realizó mejoras y corrigió problemas durante aproximadamente una hora en su programa conocido como 's' (o buscar). Le presentó la función a Mcllroy al día siguiente, quien dijo que era lo mismo que él quería. El relato de Thompson puede describir la creencia de que el comando grep se especificó de la noche a la mañana.

Thompson especificó la versión inicial en lenguaje ensamblador PDP-11 para soportar Lee E. McMohan comprobar el texto de Federalist Papers para decidir la autoría del artículo individual. El editor de texto ed admitía expresiones regulares pero no podía usarse en textos tan grandes; Thompson copió ese código en una herramienta independiente. Seleccionó el nombre debido a en ed; el comando grep imprimiría cada línea igual que el patrón descrito. Primero, se agregó grep en la versión 4 de Unix, diciendo que 'generalmente se cita como la herramienta de software prototípica' , Mcllroy aprobó grep con el 'irrevocablemente arraigado' Filosofía de herramientas de Thompson en Unix.

Implementaciones de grep

Hay una variedad de implementaciones de grep en varios entornos de desarrollo de software y sistemas operativos. Las primeras versiones incluían fgrep y egrep, introducidas en la versión 7 de Unix. La versión egrep admite la sintaxis de una expresión regular extendida incluida por Alfred Aho después de la implementación de expresión regular original de Ken Thompson. La versión fgrep encuentra cualquier lista de cadenas fijas con el Algoritmo de coincidencia de cadenas Aho-Corasick . Estas versiones binarias están disponibles en sistemas modernos, conectándose a grep o llamando a grep un script de shell usando el indicador correcto agregado mientras generalmente se implementan en los sistemas POSIX.

Otros comandos incluyen el 'agarre' palabra para representar, están encontrando herramientas, comúnmente aquellas que dependen de coincidencias de expresiones regulares. Por ejemplo, la utilidad, es decir, 'pgrep' , muestra los procesos cuyos títulos son los mismos que la expresión regular proporcionada.

  • Grep es el título de la función incorporada que busca los elementos dentro de una lista que entretienen una determinada propiedad en el perla lenguaje de programación.
  • Normalmente, esta función de orden superior se llama 'filtrar' o 'dónde' en otro idioma.
  • El comando, es decir, pcregrep , es una implementación grep que utiliza la sintaxis de la expresión regular de Perl. Se puede agregar la misma funcionalidad a la versión grep GNU usando el indicador -P.
  • Además, los puertos grep (por ejemplo, en GnuWin32 y Cygwin ) ejecutar en Microsoft Windows. Algunas versiones de Windows proporcionan el mismo comando findstr o qgrep.
  • Además, el comando grep es parte de las herramientas MSX-DOS2 de ASCII para la versión 2 de MSX-DOS.
  • Los comandos fgrep, egrep y grep se han enviado al sistema operativo IBM i.
    El software Adobe InDesign tiene funciones GREP (desde la edición CS3) en el cuadro de diálogo de la pestaña cambiar/buscar 'GREP' y se especifica usando CS4 en el 'Estilos GREP' estilos de párrafo.

¿Cómo instalar grep en Linux?

Grep viene preinstalado en casi todas las distribuciones de Linux. Sin embargo, en caso de que no esté en nuestro sistema, podemos instalarlo con el siguiente comando en la ventana de terminal:

 $ sudo apt-get install grep 

grep con tubería

lista vs conjunto en java

El comando 'grep' se usa generalmente con pipe (|) .

Sintaxis:

 command | grep 

Ejemplo:

 cat marks.txt | grep 9 

Filtros Grep de Linux1

Mire la instantánea anterior, el comando grep filtra todos los datos que contienen '9'.

grep sin tubería

También se puede utilizar sin tubería.

Sintaxis:

 grep 

Ejemplo:

 grep 9 marks.txt 

Filtros Grep de Linux2

Mire la instantánea anterior, el comando grep hace el mismo trabajo que el ejemplo anterior pero sin tubería.

opciones de grep

    grep-vM: El comando 'grep -v' muestra líneas que no coinciden con la palabra especificada.

    Sintaxis:

     grep -v 

    Ejemplo:

     grep -v 9 marks.txt 

    Filtros Grep de Linux3

    Mire la instantánea de arriba, comando 'grep -v 9 marcas.txt' muestra líneas que no contienen nuestra palabra de búsqueda '9'.

    grep -i: El comando 'grep -i' filtra la salida sin distinguir entre mayúsculas y minúsculas.

    Sintaxis:

     grep -i 

    Ejemplo:

     grep -i red exm.txt 

    Filtros Grep de Linux4

    Mire la instantánea de arriba, comando 'grep -i rojo exm.txt' muestra todas las líneas que contienen 'rojo', ya sea en mayúsculas o minúsculas.

    grep -A/ grep -B/ grep -C

    grep -Un comando se utiliza para mostrar el línea después del resultado .

    El comando grep -B se utiliza para mostrar el línea antes del resultado .

    El comando grep -C se utiliza para mostrar el línea después y línea antes el resultado.

    Puede utilizar (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) para mostrar cualquier número de líneas.

    Sintaxis:

    herramienta de recorte en ubuntu
     grep -A grep -B grep -C 

    Ejemplo:

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

    Filtros Grep de Linux5

    Mire la instantánea de arriba, comando 'grep -A1 exm.txt amarillo' muestra la línea buscada con la siguiente línea siguiente, comando 'grep -B1 exm.txt amarillo' muestra la línea buscada con una línea anterior y un comando 'grep -C1 exm.txt amarillo' muestra la línea buscada con una línea anterior y posterior.