- gawk < $rfile \
- '/start at/ { n=0; next } \
- /error at/ {n = -1; exit} \
- /end/ {exit} \
- /^[0-9]+\/[0-9]+ Total: [0-9]+\.[0-9]+\/second$/ \
- { n++; v=strtonum($3); \
- if (n == 1 || v < min) min = v; \
- if (n == 1 || v > max) max = v; \
- next; \
- } \
- { if (n != 0) {n = -1; exit } } \
- END {printf "%d %f %f\n", n, min, max}'
+ gawk < $rfile \
+ '/starting/ { n=0; next } \
+ /error/ {n = -1; exit} \
+ /^Total: total [0-9]+ threads [0-9]+ sec [0-9\.]+ [0-9]+\.[0-9]+\/second$/ \
+ { ave = strtonum($8); n++; next} \
+ /^[0-9]+\/[0-9]+ Total: [0-9]+\.[0-9]+\/second$/ \
+ { n++; v = strtonum($3); \
+ if (n == 1 || v < min) min = v; \
+ if (n == 1 || v > max) max = v; \
+ next; \
+ } \
+ { if (n != 0) {n = -1; exit } } \
+ END { if (n == 1) { min = ave; max = ave; } \
+ printf "%d %f %f %f\n", n, ave, min, max}'