Selon le manuel de awk, BEGIN et END ne sont pas utilisés pour faire correspondre l'entrée, mais plutôt pour fournir des informations de démarrage et de nettoyage au script awk. Voici l'exemple donné:
ls -l | \
awk 'BEGIN { print "Files found:\n" } /\<[a|x].*\.conf$/ { print $9 }'
Files found:
amd.conf
antivir.conf
xcdroast.conf
xinetd.conf
Tout d'abord, cela imprime une chaîne à afficher. Ensuite, il vérifie l'entrée pour une correspondance de modèle, où l'entrée commence par un ou x suivi par un caractère une ou plusieurs fois suivi du .conf. Pour toutes les correspondances, la 9e colonne est imprimée.
Le fait que nous sommes obligés d'utiliser commence ici, cela signifie-t-il que awk ne peut utiliser au plus qu'une fonction d'impression qui contient un début ou une fin? Sinon, pourquoi ne pouvons-nous pas simplement utiliser la fonction d'impression au début sans le mot-clé BEGIN? Il semble que le BEGIN soit superflu.