Pregunta 1¿Qué se muestra al ejecutar grep error log.txt?
Búsqueda de texto — grep
Aprende los fundamentos de encontrar líneas que contengan una cadena, más cuándo usar -i para ignorar mayúsculas, -n para números de línea y -r para búsqueda recursiva — todo práctico en una terminal del navegador.
Buscar una cadena — grep
grep es el comando que extrae y muestra solo las líneas de un archivo que contienen una cadena determinada.
Úsalo como grep cadena-de-búsqueda nombre_archivo y, si hay líneas coincidentes, se imprimen en pantalla tal cual.
Úsalo para encontrar solo las líneas que necesitas dentro de un log grande.
grep extrae solo las líneas que contienen la cadena indicada y no emite el resto.echo 'error: disk full' > log.txt # crear línea 1
echo 'info: started' >> log.txt # añadir
echo 'error: timeout' >> log.txt # añadir
grep error log.txt # las 2 líneas que contienen error
grep info log.txt # la 1 línea que contiene info
Ignorar mayúsculas — -i / Números de línea — -n
grep distingue entre mayúsculas y minúsculas.
Añade -i para buscar sin esa distinción, así puedes capturar tanto Error como error.
Añade -n y el número de línea se muestra delante de cada línea coincidente, para que sepas dónde está en el archivo.
-i y -n pueden combinarse y aplicarse a la vez, como grep -in error app.txt.
| Opción | Significado | Ejemplo |
|---|---|---|
-i | No distinguir mayúsculas y minúsculas | grep -i error log.txt |
-n | Añadir un número de línea delante de cada coincidencia | grep -n error log.txt |
-v | Mostrar las líneas que no coinciden | grep -v info log.txt |
-r | Buscar en un directorio de forma recursiva | grep -r TODO src |
echo 'Error in disk' > app.txt # crear línea 1
echo 'error in app' >> app.txt # añadir
echo 'ok' >> app.txt # añadir
grep -i error app.txt # las 2 líneas Error y error
grep -n error app.txt # 2:error in app (con número de línea)
Excluir las líneas no coincidentes — -v
Añade -v y grep muestra las líneas que no contienen la cadena indicada.
Mientras que grep normal conserva las líneas coincidentes, -v elimina las líneas coincidentes y emite el resto.
Úsalo cuando quieras leer un log con las líneas innecesarias (como info o debug) eliminadas.
-v excluye las líneas que contienen la cadena indicada y muestra solo el resto.echo 'error: disk full' > log.txt # crear línea 1
echo 'info: started' >> log.txt # añadir
echo 'error: timeout' >> log.txt # añadir
grep -v info log.txt # las 2 líneas que no contienen info
Buscar en un directorio recursivamente — -r
Cuando quieres buscar no solo en un archivo sino en todos los archivos bajo un directorio, añade -r y pasa un directorio en lugar de un nombre de archivo.
Recorre los subdirectorios de forma recursiva y muestra las líneas coincidentes en la forma nombre_archivo:línea.
grep -r parte del src que pasas y desciende al subdirectorio src/sub para buscar en todos los archivos.mkdir -p src/sub # crear el directorio material
echo 'TODO: fix later' > src/a.txt # 1 archivo en el directorio padre
echo 'TODO: review' > src/sub/b.txt # 1 archivo en el subdirectorio
grep -r TODO src # buscar recursivamente bajo src
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué opción añades a grep para buscar sin distinguir mayúsculas y minúsculas?
Pregunta 3¿Cómo se comporta grep cuando añades -r y pasas un directorio?