Laut dem awk-Handbuch werden BEGIN und END nicht verwendet, um Eingaben abzugleichen, sondern um dem awk-Skript Start- und Bereinigungsinformationen bereitzustellen. Hier ist das gegebene Beispiel:
ls -l | \
awk 'BEGIN { print "Files found:\n" } /\<[a|x].*\.conf$/ { print $9 }'
Files found:
amd.conf
antivir.conf
xcdroast.conf
xinetd.conf
Zuerst wird eine Zeichenfolge gedruckt, die ausgegeben werden soll. Anschließend wird die Eingabe auf eine Musterübereinstimmung überprüft, wobei die Eingabe mit einem oder x beginnt, gefolgt von einem oder mehreren Zeichen, gefolgt von der .conf. Für alle Übereinstimmungen wird die 9. Spalte gedruckt.
Die Tatsache, dass wir gezwungen sind, hier zu beginnen, bedeutet, dass awk höchstens eine Druckfunktion verwenden kann, die BEGIN oder END enthält? Wenn nicht, warum können wir dann nicht einfach die Druckfunktion am Anfang ohne das Schlüsselwort BEGIN verwenden? Es scheint, dass der BEGIN überflüssig ist.