awk命令是一种强大的文本处理工具,BEGIN和END是两个特殊的模式,用于在awk程序的开始和结束时执行特定的操作。
BEGIN模式:
BEGIN模式指定在处理输入之前要执行的操作。它通常用于初始化变量、打印标题或设置其他初始条件。以下是awk程序中使用BEGIN模式的示例:
awk 'BEGIN { print "Start of the program" } { print $0 }' file.txt
在这个例子中,BEGIN模式内的print "Start of the program"语句会在处理文件file.txt之前执行,并打印"Start of the program"。
END模式:
END模式指定在处理输入之后要执行的操作。它通常用于计算总结信息、输出结果或进行清理操作。以下是一个使用END模式的示例:
awk '{ sum += $1 } END { print "Sum:", sum }' file.txt
在这个例子中,sum += $1将每行的第一个字段值相加,并将结果存储在变量sum中。当处理完整个文件后,END模式内的print "Sum:", sum语句会打印出计算得到的总和。
需要注意的是,BEGIN和END模式都是可选的,我们可以根据实际需求选择是否使用它们。同时,awk程序的执行顺序是按照模式匹配的先后顺序进行的,因此BEGIN模式会在任何其他模式之前执行,而END模式则会在最后执行。