#!/usr/bin/awk -f BEGIN { i = 0 j = 0 } /global_dirty_state/ { time[i] = strtonum($3) dirtied[i] = strtonum(substr($12, 9)) written[i] = strtonum(substr($13, 9)) if (time[i] - time[j] > 30) { # printf "%f %d %d\n", time[i], dirtied[i], written[i], time[i] - time[j], dirtied[i] - dirtied[j], written[i] - written[j] printf "%f %f %d %d\n", time[i], time[i] - time[j], dirtied[i] - dirtied[j], written[i] - written[j] j++ } i++ }