#!/bin/sh # version 2007.09.24 # D. J. Bernstein # Public domain. original-awk -F: ' { if ($1 == "vertex" && $3 == "label") { vnum = vnum + 1 v[vnum] = $2 vlookup[$2] = vnum vlabel[$2] = $4 } else if ($1 == "vertex" && $3 == "y") { vy[$2] = $4 } else if ($1 == "vertex" && $3 == "x") { vx[$2] = $4 } else if ($1 == "edge") { enum = enum + 1 estart[enum] = $2 eend[enum] = $3 eflipped[enum] = $4 } } END { for (i = 1;i <= vnum;++i) print vy[v[i]]":vertex:"vx[v[i]]":"v[i]":"vlabel[v[i]]":" for (i = 1;i <= enum;++i) print vy[estart[i]]":edge:"estart[i]":"eend[i]":"eflipped[i]":" } ' \ | sort -t: -nr \ | original-awk -F: ' { if ($2 == "vertex") { print "vertex:"$4":label:"$5":" if ($1) print "vertex:"$4":y:"$1":" if ($3) print "vertex:"$4":x:"$3":" } else if ($2 == "edge") { print "edge:"$3":"$4":"$5":" } } '