我有下表:
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
我想将Bezier线的总和归还给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 / line开头。即使我把“fin = NR + 1”,结果也一样。我可以从/ Fagour /开始解决问题,但我无法理解为什么它不适用于此版本。
答案 0 :(得分: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