Lecciones del módulo (2/2)
Tuberías y filtros (grep y |)
Una de las características más potentes de la línea de comandos de Linux es la capacidad de conectar diferentes comandos para que la salida de uno se convierta en la entrada del siguiente. Esta técnica se realiza mediante pipelines (tuberías) y es compatible con el comando de filtrado grep.
El filtro de texto: grep
El comando grep (Global Regular Expression Print) busca un texto específico dentro de uno o más archivos e imprime en pantalla las líneas correspondientes:
grep "parola" [nome_file]Opciones útiles para grep
grep -i "errore" server.log: Realiza una búsqueda case-insensitive (ignora la diferencia entre mayúsculas y minúsculas, encontrando tanto "Errore" como "ERROR").grep -n "connessione" server.log: Muestra también el número de línea correspondiente en el archivo.grep -v "INFO" server.log: Invierte la búsqueda, mostrando solo las líneas que no contienen la palabra especificada.
Canalizar comandos: La Pipeline |
El operador pipeline está representado por la barra vertical |. Permite enviar la salida estándar del comando de la izquierda directamente a la entrada estándar del comando de la derecha:
[comando1] | [comando2]Por ejemplo, si un archivo de registro (log) es enorme y quieres buscar una palabra sin abrirlo por completo, puedes combinar cat y grep:
cat logs/server.log | grep ERROREste comando lee todo el archivo server.log con cat, pero en lugar de mostrarlo en pantalla lo pasa a grep, que extraerá y mostrará solo las líneas que contengan la palabra "ERROR".
Ejemplos de uso y errores comunes
Si realizas una búsqueda de una palabra usando letras minúsculas (ej. "post") en un archivo que solo contiene letras mayúsculas (ej. "POST"), grep no devolverá nada:
grep "post" logs/access.log
# Output: (ningún resultado, la búsqueda es case-sensitive por defecto)Para encontrar la línea independientemente de cómo esté escrita, usa la opción -i:
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234Si el archivo especificado no existe, grep devolverá un error:
grep "ERROR" file_inesistente.log
# Output:
# grep: file_inesistente.log: No such file or directoryPruébalo tú
Ejercicio 1: Cerca errori nei log
Filtra el archivo 'logs/server.log' para extraer y mostrar solo las líneas que contienen la palabra 'ERROR' (en mayúsculas).
Mostrar pista
Usa el comando grep seguido de la palabra a buscar y la ruta del archivo.
Solución disponible después de 3 intentos
Ejercicio 2: Pipeline e filtri
Usa el comando cat para leer el archivo 'logs/server.log' y canaliza su salida a través de una tubería (|) hacia el comando grep para filtrar e imprimir solo las líneas que contienen la palabra 'WARNING'.
Mostrar pista
Conecta cat logs/server.log a grep WARNING usando el carácter de tubería '|'.
Solución disponible después de 3 intentos
Ejercicio 3: Ricerca case-insensitive
Busca todas las líneas que contengan la palabra 'post' (tanto en mayúsculas como en minúsculas) dentro del archivo 'logs/access.log' usando la opción adecuada de grep.
Mostrar pista
Usa grep con la opción -i para ignorar la diferencia entre mayúsculas y minúsculas.
Solución disponible después de 3 intentos