28 lines
737 B
Text
28 lines
737 B
Text
|
|
#!/bin/sh
|
||
|
|
|
||
|
|
awk ' # doclean
|
||
|
|
|
||
|
|
# Input: "number tab IX string
|
||
|
|
# 107 IX self-reference #1186 -
|
||
|
|
# 281 TL APPENDIX A AMPL Reference Manual #26 -
|
||
|
|
# Output: string (tab) number
|
||
|
|
# excess spaces are removed output string
|
||
|
|
# note reversal of order; rest of programs expect it
|
||
|
|
|
||
|
|
# This contains some special pleading for the AMPL book
|
||
|
|
|
||
|
|
BEGIN { FS = OFS = "\t" }
|
||
|
|
|
||
|
|
/\t(TL|H1|H2|H3|LASTPAGE)/ { next } # zap expected noise
|
||
|
|
|
||
|
|
$0 !~ /[0-9ixv]+\tIX / {
|
||
|
|
print "doclean: non index line: " $0 | "cat 1>&2"; next
|
||
|
|
}
|
||
|
|
|
||
|
|
{ sub(/IX +/, "", $2) # zap "IX "
|
||
|
|
sub(/ +#[0-9]+ .*$/, "", $2) # zap trailing blanks, slug, file
|
||
|
|
gsub(/ +/, " ", $2) # compress internal blanks
|
||
|
|
print $2, $1 # item (tab) page number
|
||
|
|
}
|
||
|
|
' $*
|