2016-09-22 51 views
0

我有如下表:GAWK:从和记录到另一个

login:numero:sobrenome:nome 
INICIO  
Alcala:1234:Thomas:Alcala 
Baron:1235:Alexis:Baron 
Bezier:1236:Pascal:Bezier 
Boutier:1237:Damien:Boutier 
Buard:1238:Jeremy:Buard 
Fagour:1239:Dimitri:Fagour 
Fagour:1240:Stephane:Fagour 
Justice:1241:Jonathan:Justice 
FIM 
Numero de usuario = 15 

我想从线贝塞尔总和返回Buard。 我尝试下面的命令:

gawk '/Bezier/{init=NR}/Buard/{fin=NR}NR>=$init{Sum1+=$2}NR>$fin{Sum2+=$2}END{Sum=Sum1-Sum2;print Sum}BEGIN{FS=":"}' arq_test_awq 

但是没办法,SUM2总是/ Buard /行开始。即使我把“fin = NR + 1”,结果也是一样的。我可以从/ Fagour /开始解决问题,但我不明白为什么它不适用于此版本。

回答

1

检查是否这些都是感兴趣的记录

$ awk -F: '/Bezier/,/Buard/' file 
    Bezier:1236:Pascal:Bezier 
    Boutier:1237:Damien:Boutier 
    Buard:1238:Jeremy:Buard 

总结末

$ awk -F: '/Bezier/,/Buard/{sum+=$2} END{print sum}' file 
3711 
第二场和打印
相关问题