30 lines
665 B
Awk
30 lines
665 B
Awk
![]() |
# turn output of mkindex into form needed by dict
|
||
|
BEGIN {
|
||
|
if(ARGC != 2) {
|
||
|
print "Usage: awk -F' ' -f canonind.awk rawindex > index"
|
||
|
exit 1
|
||
|
}
|
||
|
file = ARGV[1]
|
||
|
ARGV[1] = ""
|
||
|
while ((getline < file) > 0) {
|
||
|
for(i = 2; i <= NF; i++) {
|
||
|
w = $i
|
||
|
if(length(w) == 0)
|
||
|
continue
|
||
|
b = index(w, "(")
|
||
|
e = index(w, ")")
|
||
|
if(b && e && b < e) {
|
||
|
w1 = substr(w, 1, b-1)
|
||
|
w2 = substr(w, b+1, e-b-1)
|
||
|
w3 = substr(w, e+1)
|
||
|
printf "%s%s\t%d\n", w1, w3, $1 > "junk"
|
||
|
printf "%s%s%s\t%d\n", w1, w2, w3, $1 > "junk"
|
||
|
} else
|
||
|
printf "%s\t%d\n", w, $1 > "junk"
|
||
|
}
|
||
|
}
|
||
|
system("sort -u -t' ' +0f -1 +0 -1 +1n -2 < junk")
|
||
|
system("rm junk")
|
||
|
exit 0
|
||
|
}
|