awk
Patrones y Acciones
Buscar..
Introducción
Un awk consiste en patrones y acciones, encerrados entre paréntesis, que deben tomarse si un patrón coincide. El patrón más básico es el patrón vacío, que coincide con cualquier registro. La acción más básica es la acción vacía, que es equivalente a { print } , que es, a su vez, equivalente a { print $0 } . Si tanto el patrón como la acción están vacíos, awk simplemente no hará nada.
El siguiente programa simplemente hará eco de su entrada, por ejemplo:
awk '{ print }' /etc/passwd
Dado que { print } es la acción predeterminada, y como un valor verdadero coincide con cualquier registro, ese programa podría reescribirse como:
awk '1' /etc/passwd
El tipo más común de patrón es probablemente una expresión regular encerrada entre barras. El siguiente programa imprimirá todos los registros que contengan al menos dos apariciones posteriores de la letra o , por ejemplo:
awk '/oo+/ { print }' /etc/passwd
Sin embargo, puede utilizar expresiones arbitrarias como patrones. El siguiente programa imprime los nombres (campo uno) de los usuarios en el grupo cero (campo cuatro), por ejemplo:
awk -F: '$4 == 0 { print $1 }' /etc/passwd
En lugar de hacer coincidir exactamente, también puede coincidir con una expresión regular. El siguiente programa imprime los nombres de todos los usuarios en un grupo con al menos un cero en su identificación de grupo:
awk -F: '$4 ~ /0/ { print $1 }' /etc/passwd
Filtrar líneas por longitud
Este patrón te permitirá filtrar líneas dependiendo de su longitud.
$cat file
AAAAA
BBBB
CCCC
DDDD
EEEE
$awk 'length($0) > 4 { print $0 }' file
AAAAA
$
De todos modos, el patrón permitirá que se ejecute el siguiente bloque de código, luego, como la acción predeterminada para AWK es imprimir la línea actual {print} , veremos el mismo resultado cuando ejecutemos esto:
$awk 'length($0) > 4 ' file
AAAAA