在AWK编程语言中,复合模式指的是使用逻辑运算符(如&&
、||
和!
)组合多个单一模式来创建更复杂的条件表达式。这些复合模式可以用于决定何时执行相关联的动作(Action)。以下是一些AWK中的复合模式示例:
逻辑与 (AND):
当两个或更多模式都满足时,执行关联的action。/pattern1/ && /pattern2/ { action }
这个例子表示只有当输入行同时匹配
pattern1
和pattern2
时,才会执行action
。逻辑或 (OR):
当至少有一个模式满足时,执行关联的action。/pattern1/ || /pattern2/ { action }
这意味着只要输入行匹配
pattern1
或者pattern2
中的任意一个,就会执行action
。逻辑非 (NOT):
当模式不满足时,执行关联的action。!/pattern/ { action }
此处,如果输入行不匹配
pattern
,则会执行action
。多模式并列:
可以在一个规则中列出多个模式,并为它们指定相同的action。pattern1, pattern2 { action }
在这个例子中,如果一行匹配
pattern1
或pattern2
中的任何一个,都会执行action
。BEGIN 和 END 块:
虽然不是严格意义上的复合模式,但BEGIN和END模式块也是特殊的“复合”概念,因为它们结合了程序执行的特定阶段:BEGIN { initialization_code } /pattern/ { action } END { finalization_code }
BEGIN块在处理任何输入行之前执行,通常用于初始化变量或设置全局选项;而END块在所有输入行处理完毕后执行,常用来做最终统计或输出汇总信息。