Comando grep de Linux: cómo utilizarlo y ejemplos útiles
El comando grep en Linux sirve para buscar líneas que contienen un patrón específico dentro de uno o varios archivos. Es una herramienta esencial para filtrar resultados en segundos, especialmente en archivos grandes como registros o configuraciones del sistema.
En este tutorial aprenderás cómo usar grep paso a paso: desde su sintaxis básica y las opciones más comunes hasta búsquedas recursivas, expresiones regulares y combinaciones con otros comandos.
También verás ejemplos prácticos para aplicar estas funciones al administrar tu servidor o analizar archivos en tu VPS.

Tabla de Contenidos
Sintaxis del comando grep
La sintaxis básica de grep es la siguiente:
grep [options] pattern [FILE]
A continuación se explica el significado de cada elemento:
- grep: nombre de la utilidad.
- opciones: argumentos que modifican el comportamiento del comando grep.
- patrón: la palabra clave que deseas buscar.
- archivo: el elemento cuyo contenido deseas buscar.
En la siguiente sección, explicaremos las opciones más utilizadas y ejemplos de su uso en la vida real. Puedes consultar esta guía de utilidades en su interfaz de línea de comandos introduciendo:
grep --help
Recuerda que debes tener el privilegio de “lectura” del archivo que deseas comprobar con grep. Lee nuestro tutorial sobre cómo cambiar los permisos en Linux.
¿Para qué se utiliza el comando grep?
El comando grep se utiliza generalmente para buscar líneas que contengan una palabra clave específica en un archivo. También es útil para filtrar la salida de otra utilidad, imprimiendo solo aquellas con un patrón concreto. Puedes hacerlo canalizando el comando a grep.
Uso del comando grep de Linux
En esta sección, analizaremos el uso habitual de la utilidad grep. Si utilizas un VPS, ejecuta el comando a través de un cliente SSH como PuTTY. Para ordenadores de sobremesa, abre la terminal de Linux pulsando Ctrl + Alt + T.
Búsqueda básica
El uso más básico de grep es filtrar archivos de texto, mostrando las líneas que contienen una palabra concreta. Para ello, ejecuta este comando sin ninguna opción, con esta sintaxis:
grep keyword file
También puedes enumerar varios nombres de archivo de la siguiente manera:
grep pattern file1 file2 file3
Si deseas utilizar una frase como cadena de búsqueda, encierra el patrón entre comillas. Por ejemplo, este comando encontrará las líneas que contengan Linux distro en el archivo de ejemplo hostinger.txt:
grep "Linux distro" hostinger.txt

Ten en cuenta que la sintaxis solo funciona si el archivo de entrada se encuentra en tu directorio actual. Si se encuentra en otra ubicación, especifica la ruta completa de la siguiente manera:
grep pattern /path/to/the/file.txt
¡Importante! Dado que los comandos de Linux como grep distinguen entre mayúsculas y minúsculas, preste atención al uso de mayúsculas en el patrón de búsqueda y el nombre del archivo.
Búsqueda recursiva
Puedes buscar de forma recursiva en todos los archivos y subdirectorios de una carpeta utilizando la opción -r. Esta es la sintaxis:
grep -r keyword path/to/a/folder
Por ejemplo, tenemos un directorio tutorial/content/linux que contiene dos carpetas llamadas commands y utilities. Para buscar la palabra VPS en todos los archivos de estas carpetas, simplemente ejecuta grep en la ruta principal:
grep -r VPS tutorial/content/linux
El comando grep mostrará las líneas coincidentes de cualquier archivo y carpeta dentro del directorio tutorial/content/linux.

También puedes usar la opción -r para buscar el mismo patrón en varios archivos o directorios al mismo tiempo. grep analizará todas las carpetas dentro de la ruta indicada y mostrará cada coincidencia con el nombre del archivo correspondiente.
Imprimir entradas alrededor de la línea coincidente
Grep te permite mostrar las líneas anteriores y posteriores a la entrada coincidente para proporcionarte más contexto. Para ello, añade estas opciones seguidas del número de líneas adyacentes que deseas imprimir:
- A: imprime la línea posterior a la entrada coincidente.
- B: muestra la línea anterior a la entrada coincidente.
- C: muestra las líneas tanto después como antes de la entrada.
Por ejemplo, ejecuta la siguiente sintaxis de grep para imprimir una entrada después de las líneas coincidentes:
grep -A1 pattern file

Búsqueda sin distinción entre mayúsculas y minúsculas
De forma predeterminada, grep tratará los patrones con diferentes mayúsculas y minúsculas como cadenas diferentes. Por ejemplo, no puedes buscar Grep y GREP utilizando la palabra clave grep. Puedes desactivar este comportamiento añadiendo la opción -i:
grep -i keyword file
Si queremos buscar la palabra vps e ignorar las distinciones entre mayúsculas y minúsculas, ejecuta el siguiente comando:
grep -i vps hostinger.txt

Búsqueda invertida
Añade la opción -v a tu comando grep con esta sintaxis para habilitar la búsqueda inversa, imprimiendo las líneas que no coinciden:
grep -v keyword file
Por ejemplo, este comando muestra solo aquellas líneas que no contienen la palabra VPS del archivo hostinger.txt:
grep -v VPS hostinger.txt

¿Cómo puedo buscar líneas que no coincidan con un patrón?
Para imprimir líneas que no coincidan con un patrón, añada la opción -v a su comando grep. Esto habilitará la función de búsqueda inversa, mostrando todas las entradas de un archivo que no contengan la palabra clave.
Mostrar números de línea
Si estás trabajando con archivos grandes, como un registro, los datos de salida pueden ser muy largos. Esto dificulta la comprobación de la ubicación del patrón. Para simplificar la tarea, puedes mostrar los números de línea con la opción -n de la siguiente manera:
grep -n keyword file
Por ejemplo, este comando imprimirá las líneas del archivo auth.log que contienen la palabra “usuario desconocido” y sus números:
grep -n "unknown user" auth.log
La línea que comienza con el número uno significa que es la primera entrada del archivo auth.log y así sucesivamente.

Entre las opciones más utilizadas de grep se encuentran -i para ignorar mayúsculas y minúsculas, -r para realizar búsquedas recursivas, -v para excluir coincidencias y -n para mostrar el número de línea. Estas opciones te permitirán adaptar fácilmente el comando a distintos casos de uso.
Consejo profesional
Puedes combinar opciones de grep para refinar la búsqueda. Por ejemplo, ejecuta grep -nv pattern file para mostrar el número de línea de las entradas que no contienen el patrón especificado.
Uso de grep con expresiones regulares
Las expresiones regulares o regex, son cadenas de caracteres que definen un patrón de búsqueda. Son útiles para encontrar una consulta muy específica sin tener que enumerar las palabras clave individualmente. A continuación se muestran varios símbolos regex y sus significados:
- .: coincide con cualquier carácter único.
- *: representa cero o más caracteres precedentes.
- +: significa uno o más de los caracteres anteriores.
- ?: indica cero o uno de los caracteres anteriores.
- ^: indica el inicio de un patrón regex.
- $: representa el final de un patrón de expresión regular.
- (): agrupa patrones.
Estas expresiones regulares se comportan de manera diferente dependiendo de si se utiliza la expresión regular extendida (ERE) con la opción -E o la expresión regular básica predeterminada (BRE).
Por ejemplo, si deseas buscar patrones como abc y acc, ejecuta el siguiente comando. El símbolo del punto (.) coincidirá con cualquier carácter:
grep -E 'a.c' file
Los símbolos ^ y $ te permiten buscar líneas que comienzan o terminan con un patrón específico. Considera este ejemplo de comando grep:
grep -E '^pattern' file
El comando anterior coincidirá con las líneas que comienzan con patrón, como patrón es una cadena de texto. Por su parte, el siguiente comando buscará entradas que terminan con patrón:
grep -E 'pattern$' file
También puedes combinar varios símbolos de expresiones regulares para refinar tu búsqueda y obtener un resultado más específico. Por ejemplo, este comando buscará líneas que contengan cualquier palabra que comience con H y termine con R:
grep '^H.*R$' 1.txt

Buscar varios patrones
Puedes buscar varias palabras clave con un solo comando grep. La forma más sencilla de hacerlo es enumerando las palabras clave entre comillas (‘) separadas por barras invertidas (\) y barras verticales (|). Esta es la sintaxis:
grep 'pattern1\|pattern2\|pattern3' file
En este comando, grep utiliza BRE, ya que no estamos añadiendo ninguna opción. Para evitar que interprete la barra vertical como el patrón consultado, la evitamos utilizando la barra invertida.

También puedes buscar varios patrones sin barra invertida añadiendo la opción -E para habilitar la función especial de la barra vertical, de la siguiente manera:
grep -E 'pattern1|pattern2|pattern3' file
En lugar de la opción -E, puedes hacerlo utilizando el comando egrep:
egrep 'pattern1|pattern2|pattern3' file
Si desea especificar los patrones por separado, utiliza la opción -e para cada consulta de búsqueda. Esta es la sintaxis del comando:
grep -e pattern1 -e pattern2 -e pattern3 file
Todas estas variaciones del comando grep producen el mismo resultado. Por lo tanto, elige una según tus preferencias.
Contar coincidencias
Varias tareas de administración del sistema pueden requerir que compruebes cuántas líneas de un archivo tienen un patrón coincidente. Por ejemplo, esto es útil para contar los intentos de inicio de sesión desde una dirección IP específica en un archivo de registro.
Para comprobar cuántas líneas contienen un patrón, utiliza la opción -c o –count de la siguiente manera:
grep -c pattern file
Sin embargo, la opción -c cuenta las líneas coincidentes, no las apariciones del patrón. Si deseas comprobarlo, utiliza la opción -o y pásala al comando wc de la siguiente manera:
grep -o pattern file | wc -l
En lugar de mostrar la línea completa, la opción -o solo imprime las apariciones del patrón, que el comando wc cuenta. Hablaremos del uso de una tubería (|) en la sección posterior.

Ten en cuenta que este comando también cuenta otras variantes de la palabra clave. Por ejemplo, si utilizas el patrón connect, grep buscará palabras como reconnect, connected, connecting y disconnected.
Si deseas contar la palabra que coincide exactamente, añade los límites de palabra al principio y al final de la palabra clave. A continuación se muestra un ejemplo:
grep -o '\bpattern\b' file
Combinar grep con otros comandos
Además de archivos y directorios, puedes filtrar datos de entrada de otro comando utilizando grep. Para ello, combínalos utilizando una barra vertical (|) de la siguiente manera:
command | grep pattern
En el fragmento, la barra vertical redirige la salida del primer comando a grep, filtrando el resultado en función de la palabra clave. A continuación se muestra un ejemplo de uso real:
ls | grep '\.txt$'
El comando ls muestra el contenido del directorio actual. A continuación, el comando grep filtra el resultado y muestra los archivos TXT que hay dentro de la carpeta. Aquí hay otro ejemplo:
ps aux | grep "process_name"
El comando ps aux muestra todos los procesos que se están ejecutando en el sistema. A continuación, la utilidad grep busca uno concreto de la lista basándose en su nombre.
Dependiendo de la tarea, puedes combinar grep con otras herramientas. Los usuarios del alojamiento VPS de Hostinger que no estén seguros de qué utilidades utilizar pueden recurrir a nuestro asistente con IA, Kodee, para que les explique y genere el comando completo.
Por ejemplo, pregúntale a Kodee: “Quiero enumerar todos los servicios de mi VPS Ubuntu y utilizar la utilidad grep para filtrar el resultado, imprimiendo solo los relacionados con NGINX. Genera el comando completo”.
A continuación, escribirá el comando adecuado para tu sistema y sus necesidades de la siguiente manera:

También puedes pedirle a Kodee que realice la tarea directamente. Escribe un comando como “Enumera todos los servicios de mi VPS Ubuntu y filtra los resultados para mostrar solo los relacionados con Docker”.

Redirigir la salida
Es posible que los administradores del sistema necesiten guardar los resultados del comando grep para su posterior procesamiento o archivo. Una forma sencilla de hacerlo es redirigir la salida a un archivo de texto utilizando el símbolo mayor que (>). Esta es la sintaxis:
grep pattern file > target_file.txt
Si el archivo de destino no existe, el comando grep lo creará automáticamente en tu directorio de trabajo actual.
Para comprobar si grep guarda la salida correctamente, imprime el contenido del archivo de destino utilizando el comando cat de la siguiente manera:
cat target_file.txt
Cómo sacarle el máximo partido al comando grep
Dominar el comando grep te da una ventaja real en la administración de sistemas Linux. Más allá de las búsquedas básicas, puedes combinarlo con otras utilidades como awk, sed o sort para analizar datos, depurar errores y automatizar tareas.
Por ejemplo, usar grep dentro de una tubería (|) te permitirá filtrar resultados de otros comandos y mantener tus registros limpios y organizados.
Si trabajas con un servidor o VPS, poner en práctica estos comandos te ayudará a localizar información rápidamente en archivos de configuración, detectar fallos de servicios o comprobar conexiones activas sin depender de herramientas externas. Cuanto más uses grep, más notarás su utilidad para optimizar el tiempo de gestión del sistema.
Para seguir aprendiendo, revisa nuestra guía completa sobre comandos de Linux y descubre cómo cada herramienta puede complementar a grep en tus tareas diarias.
También puedes explorar cómo cambiar permisos de archivos o redirigir salidas para llevar tus búsquedas a otro nivel.
Comentarios
May 11 2020
Muy buen aporte, gracias
May 15 2020
Hola Daniel, gracias por tu comentario. Nos alegra que te haya servido. Saludos!
June 24 2020
Muy bien explicado, gracias!
June 25 2020
Gracias a ti por leernos Agustín, ¡que bueno que te haya sido útil!
December 18 2020
Muy buen aporte. Siempre he usado grep de forma muy limitada. Este aporte lo hace mucho más versatil. Eskerrik asko!
February 27 2021
Muy buen aporte amigo
July 02 2021
grep -c texto archivo conteo de lineas donde aparece texto. si se repite varias veces en la misma linea, solo cuenta una linea.