Según el manual de awk, BEGIN y END no se utilizan para hacer coincidir la entrada, sino para proporcionar información de inicio y limpieza al script awk. Aquí está el ejemplo dado:
ls -l | \
awk 'BEGIN { print "Files found:\n" } /\<[a|x].*\.conf$/ { print $9 }'
Files found:
amd.conf
antivir.conf
xcdroast.conf
xinetd.conf
Primero, esto imprime una cadena a la salida. Luego verifica la entrada para una coincidencia de patrón, donde la entrada comienza con a o x seguido de cualquier carácter una o varias veces seguido de .conf. Para cualquier coincidencia, se imprime la novena columna.
El hecho de que nos veamos obligados a usar comienza aquí, ¿eso significa que awk solo puede usar como máximo una función de impresión que contenga un COMIENZO o FIN? Si no, ¿por qué no podemos usar la función de impresión al principio sin la palabra clave BEGIN? Parece que el COMIENZO es superfluo.