awk ' # reroman # Output: string (tab) arab1 [(space) arab2] # Input: string (tab) arab1 or roman1 [(space) arab2 or roman2] BEGIN { FS = OFS = "\t" # set a[1] = "i", a[2] = "ii", ... s = "i ii iii iv v vi vii viii ix x" s = s " xi xii xiii xiv xv xvi xvii xviii xix xx" s = s " xxi xxii xxiii xxiv xxv xxvi xxvii xxviii xxix xxx" split(s, a, " ") } $2 < 0 { n = split($2, b, " ") for (i = 1; i <= n; i++) { if (b[i] >= 0) continue j = 1000 + b[i] if (j in a) b[i] = a[j] else print "reroman: bad number: " $0 | "cat 1>&2" } $2 = b[1] if (n > 1) $2 = b[1] " " b[2] } { print } ' $*