我正在执行以下操作,MATCH $0 BEG_ERE
每行重复一次。主要是因为开头{
从下一行开始。这会是一个错误吗?
match($0, beg_ere, maggr)
{
print "MATCH $0 BEG_ERE"
print " " $0
next
}
答案1
不,这不是一个错误 - 这是一个功能。
awk 程序由一系列对组成,rule { action }
如果逻辑上为 TRUE,则{ action }
执行该程序。rule
不过,有两种特殊情况:
如果
rule
为空,则{ action }
对每个记录执行,即默认情况下空规则被视为 TRUE如果为空,则假定
{ action }
相当于的默认操作。{ print $0 }
所以你的程序,虽然语法正确,必须是相当于两个单独的规则-动作对
match($0, beg_ere, maggr) { print $0 }
1 {
print "MATCH $0 BEG_ERE"
print " " $0
next
}