###BEGIN {deps = "CMT"} { if ($0 ~ "^#[ ]use") { deps = deps " " $3 } else if ($1 == "use") { p = $2; v = $3; sub (p "[-]", "", v); version[p] = v; if ($4 ~ "^[(]") {pp = $4} else {pp = $5} if ($NF !~ "^[(]") {pp = $NF} gsub ("[()]", "", pp); path[p] = pp; } } END { n = split (deps,w); for (i=1; i <= n; i++) { p=w[i]; v=version[p]; pp=path[p]; if (v != "") { print p ":" p "-" v ":" pp; } } }