Secondo il manuale di awk, BEGIN ed END non sono usati per abbinare l'input, ma piuttosto per fornire informazioni di avvio e pulizia allo script di awk. Ecco l'esempio dato:
ls -l | \
awk 'BEGIN { print "Files found:\n" } /\<[a|x].*\.conf$/ { print $9 }'
Files found:
amd.conf
antivir.conf
xcdroast.conf
xinetd.conf
In primo luogo questo stampa una stringa per l'output. Quindi controlla l'input per una corrispondenza del modello, in cui l'input inizia con a o x seguito da un carattere una o più volte seguito da .conf. Per ogni corrispondenza, viene stampata la nona colonna.
Il fatto che siamo costretti a usare inizia qui, significa che awk può usare solo al massimo una funzione di stampa che contiene BEGIN o END? In caso contrario, perché non possiamo semplicemente utilizzare la funzione di stampa all'inizio senza la parola chiave BEGIN? Sembra che INIZIARE sia superfluo.