awkのマニュアルによると、BEGINとENDは入力の照合には使用されず、起動とクリーンアップの情報をawkスクリプトに提供するために使用されます。以下に例を示します。
ls -l | \
awk 'BEGIN { print "Files found:\n" } /\<[a|x].*\.conf$/ { print $9 }'
Files found:
amd.conf
antivir.conf
xcdroast.conf
xinetd.conf
まず、出力する文字列を出力します。次に、入力のパターンマッチをチェックします。入力はaまたはxで始まり、その後に任意の文字が1回以上続き、その後に.confが続きます。一致した場合、9列目が出力されます。
ここでbeginを使用せざるを得ないという事実は、それはawkがBEGINまたはENDを含む最大1つの印刷関数しか使用できないことを意味しますか?そうでない場合、キーワードBEGINなしで最初にprint関数を使用できないのはなぜですか?BEGINは不要なようです。