¿Ya dominas lo básico? Un curso estructurado de shell scripting es la vía rápida para dar el salto.
Ver cursos de shell scripting en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primer guion (echo)
- 03Usar variables
- 04Argumentos de la línea de órdenes ($1, $2 ...)
- 05Condicionales (la sentencia if)
- 06Repetir (el bucle for)
- 07Repetir (el bucle while)
- 08Escribir tu propia función
- 09Trabajar con arrays
- 10Sustitución de comandos ($())
- 11Trabajar con texto (expansión de parámetros)
- 12Leer de la entrada estándar (read)
- 13Estado de salida y && / ||
- 14Tuberías y redirección
- 15La sentencia case
- 16Aritmética ($(( )))
- 17Lo básico de grep, sed y awk
- 18Comprobación de argumentos y manejo de errores
- 19Valores devueltos por funciones y códigos de salida
- 20[Proyecto] Construye un contador de registros
Lo básico de grep, sed y awk
En esta lección contarás cuántas líneas de un registro contienen una palabra.
grep filtra líneas por un patrón, y con -c devuelve cuántas encontró en vez de mostrarlas. Los otros dos compañeros habituales son sed, que sustituye texto, y awk, que trabaja con columnas.
El código de ejemplo cuenta las líneas de nivel ERROR del registro.
Fíjate en que los mensajes del registro están en español pero los niveles siguen en inglés. No es un descuido: los niveles de registro se escriben en inglés en prácticamente todo el software, y un guion que busque «ERROR» funciona igual en cualquier país. Es justo el tipo de cosa que conviene no traducir.
Con estos tres comandos se resuelve la mayor parte del trabajo diario con archivos de texto: grep "ERROR" app.log | wc -l cuenta errores, sed 's/antiguo/nuevo/g' reemplaza en masa y awk '{print $1}' se queda con la primera columna. Aprender solo estos tres ya cambia bastante la relación con la terminal.
🧪 Este sitio no puede compilar ni ejecutar Shell Script directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
