Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

La forma básica es grep 'patrón' archivo: grep busca líneas que coinciden con el patrón y, por defecto, las muestra. La decisión clave es si buscas una cadena literal —usa -F— o un patrón de expresión regular, que es el modo habitual.

Buscar una palabra dentro de un archivo

Escribe el patrón entre comillas y después indica el archivo:

grep 'error' app.log

La salida contiene las líneas donde aparece error, aunque también tengan texto antes o después. Las comillas simples hacen que el shell entregue el patrón a grep sin interpretar primero caracteres especiales. Si omites el archivo, grep lee la entrada estándar, por ejemplo, la salida de una tubería.

Elegir entre texto literal y expresión regular

Esta elección evita uno de los tropiezos más comunes: en una expresión regular, algunos caracteres tienen un significado especial. Un punto, por ejemplo, no siempre significa «un punto».

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Necesidad Modo Ejemplo
Buscar una cadena exactamente como está escrita, incluidos símbolos -F: cadenas fijas, sin interpretar regex grep -F '10.0.0.1' access.log
Usar la sintaxis de expresiones regulares básicas Modo predeterminado; -G lo indica explícitamente en GNU grep grep 'patrón' archivo
Usar expresiones regulares extendidas, con alternativas más legibles -E grep -E 'error|warning' app.log
Usar sintaxis compatible con Perl -P, extensión de GNU grep que depende de la disponibilidad de PCRE Consulta man grep para confirmar el soporte local

POSIX define las opciones -F y -E; GNU grep también documenta -P. No todas las implementaciones de grep ofrecen las mismas extensiones. Para encontrar una frase, una dirección IP o texto con puntos y otros símbolos, -F suele ser más claro que escapar cada carácter especial.

Buscar sin distinguir mayúsculas y mostrar números de línea

Combina opciones para ajustar la salida:

grep -in 'error' app.log
  • -i ignora las diferencias entre mayúsculas y minúsculas.
  • -n muestra el número de cada línea seleccionada.

Las opciones se pueden combinar; aquí -in equivale a escribir -i -n.

Buscar cualquiera de varios términos

Con -E, el símbolo | representa una alternativa:

grep -E 'error|warning' app.log

El comando selecciona líneas que coincidan con error o con warning. En GNU grep, BRE y ERE ofrecen capacidades de coincidencia semejantes con distinta notación; no des por sentado que otros grep implementan exactamente las mismas funciones.

Excluir líneas o exigir que coincida la línea completa

Mostrar las líneas que no coinciden

grep -v '^#' config.conf

-v invierte la selección. El patrón ^# busca líneas que comienzan con #, por lo que este comando muestra las que no empiezan así. No excluye líneas vacías ni comentarios con espacios antes del signo; si esos casos importan, adapta el patrón.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Coincidencia de línea completa

grep -x 'OK' status.txt

-x exige que la línea entera coincida con OK. Sin esta opción, grep seleccionaría también una línea como OK: servicio activo.

Contar coincidencias o encontrar qué archivos las contienen

grep -c 'timeout' *.log
grep -l 'TODO' src/*.c
  • -c muestra el número de líneas seleccionadas en cada archivo; no cuenta todas las apariciones repetidas dentro de una misma línea.
  • -l muestra los nombres de los archivos que contienen al menos una coincidencia.

Buscar en la salida de otro comando

La barra vertical envía la salida del comando de la izquierda a la entrada estándar del de la derecha. Por eso grep puede buscar en resultados sin que se indique un archivo:

ps aux | grep -i 'sshd'

Este ejemplo ilustra el uso de una tubería. Para localizar procesos, puede convenir una herramienta del sistema diseñada específicamente para esa tarea. También puedes filtrar registros, por ejemplo, con journalctl -u ssh | grep -i 'failed', si journalctl está instalado y el servicio está disponible en tu sistema.

Buscar en subdirectorios

GNU grep permite recorrer directorios de forma recursiva con -r:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
grep -rni 'TODO' ./src

En este ejemplo, -r recorre subdirectorios, -n muestra números de línea e -i ignora mayúsculas. La recursión y las diferencias entre -r y -R son específicas de implementaciones como GNU grep; pueden no estar disponibles o comportarse igual en otras. Consulta man grep para las opciones de tu sistema, especialmente si hay enlaces simbólicos o dispositivos en el árbol.

Entender los patrones básicos

En las expresiones regulares, ^ ancla el patrón al principio de una línea y $ al final. En GNU grep, . representa un carácter. Por ejemplo, ^$ coincide con líneas vacías.

La búsqueda se evalúa línea por línea: POSIX especifica que el salto de línea terminador no forma parte de la línea que se compara. No uses grep esperando que una expresión normal encuentre una coincidencia que atraviese un salto de línea.

Si el patrón comienza con un guion, indícalo con -e para que no se confunda con una opción:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
grep -e '-patrón' archivo
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Interpretar el código de salida

En POSIX, el estado de salida distingue el resultado de la búsqueda de los errores:

  • 0: se seleccionó una o más líneas.
  • 1: no se seleccionó ninguna línea. Por sí solo, este estado no significa que el comando haya fallado.
  • Mayor que 1: ocurrió un error.

Esto importa en scripts, donde un resultado sin coincidencias puede ser una situación normal. Si usas grep -q para detener la salida al encontrar algo, ten en cuenta que POSIX permite que devuelva estado cero al hallar una coincidencia incluso si se detectó un error; por tanto, no confirma necesariamente que todos los archivos se hayan leído correctamente.

Portabilidad y configuración regional

Las opciones comunes -i, -n, -v, -c, -l, -x, -E y -F están descritas por POSIX. Las extensiones de GNU grep no son universales. Para confirmar el comportamiento disponible, consulta man grep en el equipo donde ejecutarás el comando.

Como nota avanzada, la configuración regional puede afectar rangos, clases de caracteres y la interpretación de bytes. POSIX recomienda establecer LC_ALL, o al menos LC_CTYPE y LC_COLLATE, en POSIX o C al procesar nombres de ruta con secuencias de bytes no válidas para la configuración regional. No es un requisito para una búsqueda cotidiana de texto.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Referencias: POSIX.1-2017, grep(1p) y GNU Grep Manual 3.12.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.