aboutsummaryrefslogblamecommitdiff
path: root/bin/sec.awk
blob: 3ebf02b67630a49600451030ad7d5db0de00acc9 (plain) (tree)
1
2
3
4
5
6
7
8

                                              

                                          
 


                                                                               




                                           
                
                                                   

             
                                       

                                                         
                             

                                              
                     
# Convert [[[hh:]mm:]ss] timestamps to seconds

# Separator is :, strip out leading zeroes
BEGIN { FS = ":0*" }

# If no fields, too many fields, or illegal characters, warn, skip line, accrue
# errors
!NF || NF > 3 || /[^0-9:]/ {
    print "sec: Bad format" > "/dev/stderr"
    err = 1
    next
}

# Match hh:mm:ss
NF == 3 { printf "%u\n", $1 * 3600 + $2 * 60 + $3 }

# Match mm:ss
NF == 2 { printf "%u\n", $1 * 60 + $2 }

# Match ss (in which case all we've done is strip zeroes)
NF == 1 { printf "%u\n", $1 }

# Done, exit 1 if we had any errors on the way
END { exit(err > 0) }