在 awk
中,组合模式是指可以连续指定多个模式及其对应的动作来处理输入文件中的记录。这里有一个简要的组合模式列表:
顺序模式:
/pattern1/ { action1 } /pattern2/ { action2 }
当awk逐行读取文件时,它会检查每行是否匹配给定的正则表达式或条件。如果一行与
pattern1
匹配,则执行action1
;如果紧接着又与pattern2
匹配,则执行action2
。多条件模式(逻辑AND):
/pattern1/ && /pattern2/ { action }
这个模式意味着只有当一行同时满足
pattern1
和pattern2
时,才会执行action
。模式范围:
start_pattern, end_pattern { action }
在这个形式中,从遇到
start_pattern
开始直到遇到end_pattern
结束的所有行都会执行action
。BEGIN和END块:
BEGIN { initialization_action } /pattern/ { processing_action } END { finalization_action }
BEGIN
模式:在处理任何输入数据之前执行一次。/pattern/
是常规模式,对符合条件的每一行执行操作。END
模式:在所有输入数据处理完毕后执行一次,用于统计、打印汇总信息等。
模式列表(分号分割):
pattern1; pattern2; ... { action }
这里是一个模式列表,只要满足其中任何一个模式,就会执行相应的动作。每个模式之间用分号隔开,等同于或的关系。
多行处理:
NR==1,/pattern/ { # 对于第一行及之后直到包含pattern的行执行操作 }
可以处理从某特定行开始到匹配某个模式之间的所有行。
注意,awk
的模式不仅仅是正则表达式,还可以是关于字段值的比较、变量值的判断以及内置函数的返回结果等。