BEGIN 与 END 这两个特殊的“模式”,它们提供的 awk 程序起始(startup)与清除(cleanup)操作,常见于大型 awk 程序中,且通常写在个别文件里,而不是命令行上:
BEGIN { 起始操作程序代码(startup code)}
pattern1 { action1 }
pattern2 { action2 }
END { 清除操作程序代码)cleanup code }
BEGIN 与 END 的语句块是可选用的。如需设置,习惯上(但不必须)它们应分别置于 awk 程序的开头与结尾处。你可以有数个 BEGIN 与 END 语句块,awk 会按照它们出现在程序的顺序来执行:所有的 BEGIN 语句块都应该放在起始处,而所有 END 语句块也应该放在结尾。以简单程序来看,BEGIN 可用来设置变量:
awk 'BEGIN { FS=":" ; OFS="**"} { print $1, $5}' /etc/passwd