Column total

Input

 
`0B0A   RDF1+TDEV       45      BL_lmapm03
`0CE7   TDEV            59       BL_lmapm03
 
`0B09   RDF1+TDEV       70       BL_lmapm02
`0CE6   TDEV            59       BL_lmapm02
 
`0B08   RDF1+TDEV       70       BL_lmapm01
`0CE5   TDEV            59       BL_lmapm01

Output needed

 
`0B0A   RDF1+TDEV       45      BL_lmapm03
`0CE7   TDEV            59       BL_lmapm03
                       [104]
 
`0B09   RDF1+TDEV       70       BL_lmapm02
`0CE6   TDEV            59       BL_lmapm02
                       [129]
 
`0B08   RDF1+TDEV       70       BL_lmapm01
`0CE5   TDEV            59       BL_lmapm01
                       [129]

I tried this �

nawk '{a[$4]+=$3} END{for(k in a)print "["a[k]"]";}1'

but this gives me the TOTAL after reading all records ...like this

`0B0A RDF1+TDEV 45 BL_lmapm03
`0CE7 TDEV 59 BL_lmapm03
`0B09 RDF1+TDEV 70 BL_lmapm02
`0CE6 TDEV 59 BL_lmapm02
`0B08 RDF1+TDEV 70 BL_lmapm01
`0CE5 TDEV 59 BL_lmapm01
[129]
[129]
[104]

pls help me modify it to include a total of $3 for each record grouped by $NF
tHE total needs to be in column 3 under each record
Pls
tHANKS

Try:

awk '/^`/{t+=$3}!/^`/{printf ("%23s[%d]\n","",t);t=0}1;END{printf ("%23s[%d]\n","",t)}' input
1 Like
awk 'BEING{lines=0}
{
if(NR%3==0){
    print a
    a=0
}
else{
    a+=$3
    print $0
}
lines=NR
}
END{
    if(lines%3!=0)
        print a
}' a
1 Like