aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/index/deroman
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/index/deroman')
-rw-r--r--src/cmd/index/deroman18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/cmd/index/deroman b/src/cmd/index/deroman
new file mode 100644
index 00000000..5129e511
--- /dev/null
+++ b/src/cmd/index/deroman
@@ -0,0 +1,18 @@
+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 }
+' $*