Странный феномен awk снова .. (это происходит постоянно :))
У меня есть файл aaa ниже.
[first]
aaa
bbb
[second]
ccc
ddd
eee
[third]
fff
ggg
hhh
iii
Я пытаюсь напечатать номера строк каждого раздела, который начинается с заголовка, заключенного в скобки.Поэтому ниже я написал простой awk-скрипт CntSecLines.awk (он отлаживается, поэтому с некоторыми отпечатками).
/\[/{print "header found : "; print $keep " : " cnt; keep=$1; cnt=0}
!/\[/{print "header not found"; cnt = cnt+1; print "keep = " $keep;}
Ниже приведен результат исключения для aaa.
ckim@stph45:~/test] awk -f CntSecLines.awk aaa
header found :
[first] :
header not found
keep = aaa
header not found
keep = bbb
header found :
[second] : 2
header not found
keep = ccc
header not found
keep = ddd
header not found
keep = eee
header found :
[third] : 3
header not found
keep = fff
header not found
keep = ggg
header not found
keep = hhh
header not found
keep = iii
Я намеревался обновлять его только при наличии заголовка раздела.Но почему переменная keep обновляется в каждой строке?когда я печатаю переменную $ keep, мы видим, что она обновляется в каждой строке заголовка без раздела.