Согласно руководству по 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
Сначала это печатает строку для вывода. Затем он проверяет ввод на совпадение с образцом, где ввод начинается с символа или, за которым следует любой символ, один или много раз, за которым следует .conf. Для любых совпадений печатается 9-й столбец.
То, что мы вынуждены использовать, начинается здесь, означает ли это, что awk может использовать не более одной функции печати, содержащей BEGIN или END? Если нет, то почему мы не можем просто использовать функцию печати в начале без ключевого слова BEGIN? Кажется, НАЧАТЬ излишне.