Tutoriales

Ejemplo de comando grep en Linux

«Todo en Linux es un archivo.«Esta es la razón por la que la mayoría de los usuarios de Linux dedican mucho tiempo a modificar el contenido de los archivos.

Aquí es donde la importancia del comando grep juega un papel clave, le permite Buscar y combinar patrones en archivos de texto u obtener el resultado.

Entonces, en este tutorial, lo guiaré a través de todos los puntos esenciales necesarios para aprender el comando grep:

  • Sintaxis básica y opciones populares para comandos
  • Ejemplos prácticos de comandos.
  • ejercicios de comando grep

A continuación se explica cómo utilizar el comando grep

Para utilizar el comando grep, es importante comprender la sintaxis.

Esta es la sintaxis básica del comando grep:

grep [OPTIONS] PATTERN 

aquí,

  • [OPTIONS]: Con un conjunto determinado de opciones, puede cambiar el comportamiento preestablecido del comando grep, por ejemplo, usando -i Habilite búsquedas que no distingan entre mayúsculas y minúsculas.
  • PATTERN: Aquí puede especificar el texto a buscar en un archivo o salida de comando. También puede ser una expresión regular para patrones más complejos.
  • : Aquí usted especifica el archivo a buscar, si no especifica ningún archivo, buscará desde la entrada estándar.

Ahora, veamos algunas opciones comunes del comando grep:

Opciones describir
-i Ignore mayúsculas y minúsculas al realizar la búsqueda.
-v Imprime líneas que no coinciden con el patrón.
-n Muestra el número de línea de cada línea coincidente.
-w Coincide únicamente con palabras completas, no con partes de palabras.
-c Cuenta el número de filas coincidentes, no imprime las filas.
-r Buscar directorios de forma recursiva.
-A n Imprima n líneas después de cada línea coincidente.
-B n Imprima n líneas antes de cada línea coincidente.
-C n Imprima n líneas antes y después de cada línea coincidente.
-f Filename Lea los patrones de búsqueda del archivo, uno por línea.
-o Imprime sólo la parte coincidente de la fila.

Quizás se pregunte: ¿qué sucede cuando usa el comando grep sin ninguna opción? Bueno, simplemente imprime las líneas que contienen el patrón.

Por ejemplo, aquí quiero buscar error Palabras clave en el archivo error.log y sin otras opciones, me da este resultado:

¿Lo viste? Resalta el patrón encontrado e imprime las líneas que contienen el patrón.

Para que este tutorial sea fácil de seguir, usaré una herramienta llamada error.log Estos incluyen las siguientes líneas:

This is a log file with various messages.
An error occurred at 10:00 AM.
The system encountered an unexpected issue.
Everything is working normally now.
Another error message at 11:30 AM.
Warning: Please check disk usage.
Log closed at 12:00 PM

Ejemplo práctico del comando grep

En esta sección, presentaré varios ejemplos del comando grep para que pueda comprender mejor cómo usarlo.

El modo de comando grep distingue entre mayúsculas y minúsculas de forma predeterminada y, en la mayoría de los casos, funciona bien, pero es posible que desee desactivar la distinción entre mayúsculas y minúsculas.

Para esto puedes usar -i El logotipo se muestra a continuación:

grep -i PATTERN Filename

Para demostrar esto usaré ERROR Como patrón de búsqueda, muestra patrones coincidentes independientemente del caso:

grep -i ERROR error.log
Insensibilidad a mayúsculas y minúsculas en el comando grep

2. Mostrar n Une las líneas antes y después de la línea.

De forma predeterminada, el comando grep imprime solo líneas coincidentes, pero a veces es necesario el contexto de las líneas coincidentes. Entonces imprime las líneas antes y después de la línea coincidente.

Para imprimir n filas antes de hacer coincidir las filas, puede usar -B Marque y especifique el número de filas a imprimir de la siguiente manera:

grep -B  PATTERN Filename

Por ejemplo, aquí imprimo una línea antes de cada línea coincidente:

grep -B 1 error error.log 
Mostrar las líneas antes del patrón en el comando grep

Para imprimir n líneas después de la línea coincidente, puede usar -A Marque y especifique el número de filas de la siguiente manera:

grep -A  PATTERN Filename

Si quiero imprimir una línea después de la línea coincidente, usaría lo siguiente:

grep -A 1 error error.log
Imprima las líneas después de hacer coincidir el patrón en el comando grep

Si desea imprimir las líneas antes y después, puede usar -C Marque y especifique el número de filas a imprimir de la siguiente manera:

grep -C  PATTERN Filename

Supongamos que quiero mostrar 1 línea antes de la línea del patrón coincidente y 1 línea después de la línea del patrón coincidente, entonces usaría lo siguiente:

grep -C 1 error error.log
Utilice grep para imprimir las líneas anterior y siguiente que coincidan con un patrón

3. Mostrar líneas que no coinciden con el patrón.

La mayoría de las veces, utilizará el comando grep para hacer coincidir patrones, pero también le permite invertir los resultados de la búsqueda.

En resumen, especificas un término de búsqueda e imprimirá las líneas que no coinciden con el patrón dado, para esto puedes usar -v El logotipo se muestra a continuación:

grep -v PATTERN Filename

Por ejemplo, si quiero imprimir cada fila que no contiene error términos, entonces usaría lo siguiente:

grep -v error error.log
Utilice el comando grep para imprimir todo excepto el patrón dado

4. Muestra el número de líneas coincidentes.

Para mostrar el número de filas coincidentes, todo lo que tienes que hacer es usar -n El logotipo es como se muestra:

grep -n PATTERN Filename
Utilice el comando grep en Linux para mostrar el número de líneas coincidentes

5. Muestra el número total de resultados coincidentes.

Si desea saber el número de resultados coincidentes, puede utilizar -c El logotipo es como se muestra:

grep -c PATTERN Filename

Por ejemplo, aquí quiero saber cuántas veces aparece esta palabra. error mencionado en error.log archivo, así que utilicé el siguiente comando:

grep -c error error.log
Encuentre el número de resultados coincidentes a través de grep

6. Busque patrones en varios documentos.

Si desea buscar un patrón en varios archivos, todo lo que tiene que hacer es agregar varios archivos para buscar de esta manera:

grep PATTERN File1 File2

Por ejemplo, aquí busqué error Cadenas de dos archivos: error.log y error.txt Me da el siguiente resultado:

grep error error.log error.txt
Utilice el comando grep para buscar patrones en varios archivos

7. Busque patrones de cada archivo en el directorio.

Si desea buscar un patrón específico de cada archivo presente en un directorio, puede usar el comando grep de forma recursiva, que buscará un patrón determinado de cada archivo presente en ese directorio específico.

Para habilitar la búsqueda recursiva, utilice -r El logotipo es como se muestra:

grep -r PATTERN 

Por ejemplo, aquí busqué error Cadenas en el directorio actual:

grep -r error .
Búsqueda recursiva usando el comando grep

8. Busca la palabra exacta

De forma predeterminada, el comando grep imprimirá todos los patrones coincidentes, que no es lo que siempre desea. ¿Suena extraño? Por favor permítame explicarle.

Digamos que quieres buscar el término. Orange Pero si un archivo en particular también contiene el término Oranges Entonces la línea que contiene el término Oranges También se mostrará como salida.

Para solucionar este problema puedes utilizar -w opciones y especifique el modo:

grep -w PATTERN Filename

Por ejemplo, aquí voy a buscar la palabra. err Entonces usaré -w bandera, y también le muestra la diferencia en lo que sucede cuando no lo usa.

grep -w err error.log
Utilice el comando grep para encontrar la palabra exacta

cuando uso -w Firmar para encontrar err cadena, no devuelve ningún resultado porque no existe.

Pero en el segundo intento lo eliminé. -w bandera, devolverá dos resultados de contenido de visualización, donde el patrón de cadena es parte de la otra cadena (no separada).

Si una búsqueda normal no hace justicia, entonces puedes usar el modo regex (secuencia de caracteres) para tener más control sobre tu búsqueda.puedes usarlo -e Las banderas usan patrones de expresión regular, mientras que -E Expresiones regulares que le permiten utilizar funciones extendidas:

grep -e/-E PATTERN Filename

Por ejemplo, aquí estoy usando una expresión regular extendida para encontrar dos vocales usadas juntas en un archivo:

grep -e '[aeiouAEIOU]{2}' error.log
Usar expresiones regulares con el comando grep

Lectura recomendada📖

Encuentra comandos en Linux usando expresiones regulares [5 Examples]

Busque usando expresiones regulares, habilitando el modo bestia del comando de búsqueda.

10. Utilice el operador OR para especificar múltiples patrones

Puede especificar varios patrones utilizando el operador O, lo cual resulta útil cuando desea buscar varios patrones de manera eficiente.

Para especificar varios patrones, utilice el operador O (|) de la siguiente manera:

grep 'PATTERN_1\|PATTERN_2' Filename

💡

Puede presionar Mayús + Barra invertida para obtener el operador O.

Digamos que deseo encontrar dos patrones: error y Please Entonces usaría lo siguiente:

grep 'error\|Please' error.log
Utilice múltiples patrones con el comando grep

Preguntas de práctica 📓

La práctica es la mejor manera de aprender, por eso comparto algunas preguntas de práctica para el comando grep.

puedes usarlo error.log Los archivos que mencioné al principio de esta guía resuelven los siguientes problemas:

  1. descubrir error Una cadena para cada archivo presente en el directorio de trabajo.
  2. Buscar filas que no contengan el término success.
  3. Busca en un archivo líneas que contengan cualquiera de los siguientes error o issue.
  4. buscando términos log Desactivando las búsquedas que distinguen entre mayúsculas y minúsculas y redirigiendo la salida a un archivo.
  5. ¿Cómo imprimir solo los 2 últimos resultados e ignorar todos los demás? (Consejo: utilice el comando tail)

Si encuentra alguna dificultad para resolver el problema anterior, contáctenos en los comentarios o publique su pregunta en nuestro foro social.

Puede descargar la hoja de referencia del comando grep para obtener más ejemplos e información:

Hoja de trucos y ejemplos del comando grep [Free PDF Download]

A continuación se muestran algunos casos de uso prácticos y comunes del comando grep. También puede descargar una hoja de referencia para referencia rápida.

¿Eres un usuario avanzado? prueba ripgrep

El comando ripgrep puede hacer todo lo que hace el comando grep, pero con algunas ventajas adicionales, como rendimiento y funcionalidad, incluida la capacidad de buscar dentro de archivos zip.

¿Suena genial? A continuación se explica cómo instalar y utilizar ripgrep en Linux:

Usando el comando ripgrep en Linux

Es posible que ripgrep basado en Rust no reemplace completamente el comando grep clásico, pero proporciona una gran cantidad de funciones de búsqueda útiles, como el comando grep.

Además, si eres nuevo en Linux, te recomiendo que leas también nuestro Tutorial de comandos para principiantes.

Tutorial de instrucciones de Linux para principiantes absolutos

¿Nunca antes usaste comandos de Linux? No te preocupes. Esta serie de tutoriales es adecuada para principiantes absolutos en terminales Linux.

💬Comparte tu opinión sobre el comando, tu experiencia al usarlo y ¿qué prefieres en lugar de grep?

LEER  Comenzando con el Administrador de paquetes Nix

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba