Skip to main content

Ejemplos de uso del comando grep de Linux

Uso de grep (Junio 2026)

Uso de grep (Junio 2026)
Anonim

El comando grep de Linux se usa como un método para filtrar entradas. GREP significa Global Regular Expression Printer y, por lo tanto, para usarlo de manera efectiva, debe tener algún conocimiento sobre las expresiones regulares.

En este artículo, aprenderá una serie de ejemplos que lo ayudarán a comprender el comando grep.

01 de 09

Cómo buscar una cadena en un archivo usando GREP

Imagina que tienes un archivo de texto llamado libros con los siguientes títulos de libros infantiles:

  • Robin Hood
  • Caperucita Roja
  • Peter Pan
  • Ricitos de oro y los tres osos
  • Blanca Nieves y los Siete Enanos
  • Pinnochio
  • El gato en el sombrero
  • Los tres cerditos
  • El Gruffalo
  • Charlie y la fábrica de chocolate

Para encontrar todos los libros con la palabra "The" en el título, usaría la siguiente sintaxis:

grep los libros

Se devolverán los siguientes resultados:

  • Ricitos de oro y los tres osos
  • Blanca Nieves y los Siete Enanos
  • El gato en el sombrero
  • Los tres cerditos
  • El Gruffalo
  • Charlie y la fábrica de chocolate

En cada caso, se resaltará la palabra "El".

La búsqueda distingue entre mayúsculas y minúsculas, por lo que si uno de los títulos tuviera "the" en lugar de "The", no habría sido devuelto.

Para ignorar el caso puedes agregar el siguiente interruptor:

grep los libros --nombre-caso

También puede utilizar el interruptor -i de la siguiente manera:

grep -i los libros

Continuar leyendo a continuación

02 de 09

Buscar una cadena en un archivo usando comodines

El comando grep es muy poderoso. Puede usar una multitud de técnicas de comparación de patrones para filtrar los resultados.

En este ejemplo, le mostraré cómo buscar una cadena en un archivo usando comodines.

Imagina que tienes un archivo llamado lugares con los siguientes nombres de lugares escoceses:

AberdeenaberystwythaberurInverurieInvernessNewburghnuevo ciervonuevo gallowayGlasgowEdimburgo

Si desea buscar todos los lugares con inver en el nombre, use la siguiente sintaxis:

grep inver * lugares

El asterisco (*) comodín representa 0 o muchos. Por lo tanto, si tiene un lugar llamado Inver o un lugar llamado Inverness, ambos serán devueltos.

Otro comodín que puede utilizar es el punto (.). Puedes usar esto para hacer coincidir una sola letra.

grep inver.r lugares

El comando anterior encontraría lugares llamados inverurie e inverary pero no encontraría invereerie porque solo puede haber un comodín entre las dos r como se indica por el período único.

El comodín de punto es útil, pero puede causar problemas si tiene uno como parte del texto que está buscando.

Por ejemplo, mira esta lista de nombres de dominio

  • linux.about.com
  • pcsupport.about.com
  • mp3.about.com
  • minecraft.about.com
  • androidgames.about.com
  • netforbeginners.about.com
  • everydaylinuxuser.com
  • google.co.uk
  • google.au
  • direct.gov.uk

Para encontrar todo lo relacionado con .com, puede buscar utilizando la siguiente sintaxis:

grep * sobre * nombres de dominio

El comando anterior caería si la lista contenía el siguiente nombre:

  • everydaylinuxuser.com/about.html

Podrías, por tanto, probar la siguiente sintaxis:

grep * about.com nombres de dominio

Esto funcionaría bien a menos que haya un dominio con el siguiente nombre:

aboutycom.com

Para buscar realmente el término about.com necesitaría escapar del punto de la siguiente manera:

grep * sobre nombres de dominio .com

El comodín final para mostrarle es el signo de interrogación que representa cero o un carácter.

Por ejemplo:

grep? ber nombres de lugares

El comando anterior devolvería aberdeen, aberystwyth o incluso berwick.

Continuar leyendo a continuación

03 de 09

Buscar cadenas al principio y al final de la línea usando grep

Los símbolos quilate (^) y dólar ($) le permiten buscar patrones al principio y al final de las líneas.

Imagina que tienes un archivo llamado football con los siguientes nombres de equipos:

  • Blackpool
  • Liverpool
  • ciudad de Manchester
  • Ciudad de leicester
  • Manchester unido
  • Newcastle United
  • FC United Of Manchester

Si quisieras encontrar todos los equipos que comenzaron con Manchester, usarías la siguiente sintaxis:

grep ^ equipos de Manchester

El comando anterior devolvería el Manchester City y el Manchester United pero no el FC United Of Manchester.

Alternativamente, puedes encontrar todos los equipos que terminan con United usando la siguiente sintaxis:

grep United $ teams

El comando anterior volvería a Manchester United y Newcastle United, pero no al FC United Of Manchester.

04 de 09

Contando el número de coincidencias usando grep

Si no desea devolver las líneas reales que coinciden con un patrón usando grep pero solo quiere saber cuántos hay, puede usar la siguiente sintaxis:

grep -c patrón de archivo de entrada

Si el patrón coincidía dos veces, se devolvería el número 2.

Continuar leyendo a continuación

05 de 09

Encontrar todos los términos que no coinciden con grep

Imagina que tienes una lista de nombres de lugares con los países que figuran a continuación:

  • aberdeen escocia
  • Glasgow, Escocia
  • liverpool inglaterra
  • Bahía de Colwyn
  • Londres, Inglaterra

Es posible que hayas notado que Colwyn Bay no tiene un país asociado.

Para buscar todos los lugares con un país, puede utilizar la siguiente sintaxis:

grep land $ places

Los resultados devueltos serían todos los lugares a excepción de Colwyn Bay.

Obviamente, esto solo funciona para lugares que terminan en tierra (difícilmente científico).

Puedes invertir la selección usando la siguiente sintaxis:

grep -v land $ places

Esto encontraría todos los lugares que no terminaron con la tierra.

06 de 09

Cómo encontrar líneas vacías en archivos usando grep

Imagine que tiene un archivo de entrada que es utilizado por una aplicación de terceros que deja de leer el archivo cuando encuentra una línea vacía de la siguiente manera:

  • Aberdeen Escocia
  • Inverness Escocia
  • liverpool inglaterra
  • Bahía de Colwyn Gales

Cuando la aplicación llega a la línea después de liverpool, dejará de leer, lo que significa que Colwyn Bay se ha perdido por completo.

Puede usar grep para buscar líneas en blanco con la siguiente sintaxis:

grep ^ $ lugares

Desafortunadamente, esto no es particularmente útil porque solo devuelve las líneas en blanco.

Por supuesto, puede obtener un recuento del número de líneas en blanco como verificación para ver si el archivo es válido de la siguiente manera:

grep -c ^ $ lugares

Sin embargo, sería más útil conocer los números de línea que tienen una línea en blanco para que pueda reemplazarlos. Puedes hacerlo con el siguiente comando:

grep -n ^ $ lugares

Continuar leyendo a continuación

07 de 09

Cómo buscar cadenas de caracteres en mayúsculas o minúsculas usando grep

Usando grep puede determinar qué líneas de un archivo tienen caracteres en mayúscula usando la siguiente sintaxis:

grep 'A-Z' nombre de archivo

Los corchetes le permiten determinar el rango de caracteres. En el ejemplo anterior coincide con cualquier carácter que esté entre A y Z.

Por lo tanto, para hacer coincidir los caracteres en minúscula puede usar la siguiente sintaxis:

grep 'a-z' nombre de archivo

Si solo desea hacer coincidir letras y no números u otros símbolos, puede utilizar la siguiente sintaxis:

grep 'a-zA-Z' nombre de archivo

Puedes hacer lo mismo con los números de la siguiente manera:

grep '0-9' nombre de archivo 08 de 09

Buscando patrones repetitivos usando grep

Puede usar llaves {} para buscar un patrón de repetición.

Imagina que tienes un archivo con los números de teléfono de la siguiente manera:

  • 055-1234
  • 055-4567
  • 555-1545
  • 444-0167
  • 444-0854
  • 4549-2234
  • x44-1234

Sabe que la primera parte del número debe tener tres dígitos y desea buscar las líneas que no coincidan con este patrón.

Por el ejemplo anterior, sabes que 0-9 devuelve todos los números en un archivo.

En este caso, queremos las líneas que comienzan con tres números seguidos de un guión (-). Puedes hacerlo con la siguiente sintaxis:

grep "^ 0-9 0-9 0-9 -" números

Como sabemos por ejemplos anteriores, el quilate (^) significa que la línea debe comenzar con el siguiente patrón.

El 0-9 buscará cualquier número entre 0 y 9. Como se incluye tres veces, coincide con 3 números. Finalmente, hay un guión para indicar que un guión debe tener éxito entre los tres números.

Mediante el uso de los corchetes puede hacer la búsqueda más pequeña de la siguiente manera:

grep "^ 0-9 {3 } -" números

La barra diagonal se escapa del corchete {para que funcione como parte de la expresión regular pero, en esencia, lo que se dice es 0-9 {3}, lo que significa que cualquier número entre 0 y 9 tres veces.

Los corchetes también se pueden utilizar de la siguiente manera:

{5,10}{5,}

El {5,10} significa que el carácter que se está buscando debe repetirse al menos 5 veces pero no más de 10, mientras que el {5,} significa que el carácter debe repetirse al menos 5 veces, pero puede ser más que eso.

Continuar leyendo a continuación

09 de 09

Usando la salida de otros comandos usando grep

Hasta ahora hemos analizado la coincidencia de patrones dentro de archivos individuales, pero grep puede usar la salida de otros comandos como la entrada para la coincidencia de patrones.

Un gran ejemplo de esto es usar el comando ps que enumera los procesos activos.

Por ejemplo ejecuta el siguiente comando:

ps -ef

Se mostrarán todos los procesos en ejecución en su sistema.

Puede usar grep para buscar un proceso en ejecución en particular de la siguiente manera:

ps -ef | grep firefox

Resumen

El comando grep es un comando fundamental de Linux y vale la pena aprenderlo, ya que hará su vida mucho más fácil cuando busque archivos y procesos cuando use el terminal.