awk en Bash
Matemática de columnas sobre registros divididos por espacios.
data='alice 42 admin
bob 17 user
carol 99 admin'
# awk separa por espacios en blanco; $2 es la segunda columna
echo "$data" | awk '{ print $1, $2 * 2 }'
# los patrones seleccionan filas antes de que corran las acciones
echo "$data" | awk '$2 > 20 { print $1 }'
echo "$data" | awk '$3 == "admin" { count++ } END { print count }'
# y suma como una hoja de cálculo
echo "$data" | awk '{ total += $2 } END { print "total", total }'
Cómo funciona
$1,$2son columnas; las acciones corren por línea.- Un patrón inicial como
$2 > 20selecciona filas primero. - Los bloques
ENDreportan totales después de la última línea.
Palabras clave y builtins usados aquí
echo
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 430
- Tokens
- 36
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 29 segundos.
Paso 3 de 3 en Herramientas de texto; paso 21 de 26 en Fundamentos del lenguaje.