shithub: 9intro

ref: a351bcdccdf5a4273bc8dc3360a48fbb8b8aa9ea
dir: /idx/deroman/

View raw version
#!/bin/rc
awk ' # deroman
#   Input:  string (tab) [arab or roman]
#   Output: string (tab) [arab]

#	Roman numeral n is replaced by arab n-1000 (e.g., iii -> -997)
BEGIN		{ FS = OFS = "\t"
		  # set a["i"] = 1, a["ii"] = 2, ...
		  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"
		  n = split(s, b, " ")
		  for (i = 1; i <= n; i++) a[b[i]] = i
		}
$2~/^[ivxlc]+$/	{ if ($2 in a) $2 = -1000 + a[$2]
		  else print "deroman: bad number: " $0 | "cat 1>&2"
		}
		{ print }
' $*