#!/usr/bin/awk -f /^target: / { n = split(stages, l, " ") for (i = 0; i < n; i++) { switch (l[i]) { case ".*.(get|extract|prepare|compile|install|targetinstall|urlcheck)(.[a-z]+)?": stages = stages " " l[i] break # other stuff, such as archive downloads may not have a explicit end default: break } } stages = stages " " $2 cache[$2][0] = last } /\> targetfile } close(targetfile) delete cache[stage] stages = gensub(" " stage, "", "g", stages) }