|
|
1.1 root 1: BEGIN {
2: FS = "\t";
3: }
4:
5: NR == 1 {
6: if ($3 != "")
7: printf(".Ib \"%s\"\n", $2);
8: major = $2;
9: minor = $3;
10: pageno = $1;
11: pagelist = $1;
12: }
13:
14: NR != 1 {
15: if ($2 == major && $3 == minor) # neither has changed
16: {
17: if ($1 != pageno) # new page number, append
18: pagelist = pagelist "," $1;
19: }
20: else # one has changed
21: {
22: if (minor != "") # dump full record
23: printf(".I< \"%s\" \"%s\" \"%s\"\n", major, minor, pagelist);
24: else
25: printf(".I> \"%s\" \"%s\"\n", major, pagelist);
26: pagelist = $1; # restart pagelist
27: if ($2 != major && $3 != "") # major has changed, minor not null
28: printf(".Ib \"%s\"\n", $2);
29: }
30: major = $2;
31: minor = $3;
32: pageno = $1;
33: }
34:
35: END {
36: if (minor != "") # dump full record
37: printf(".I< \"%s\" \"%s\" \"%s\"\n", major, minor, pagelist);
38: else
39: printf(".I> \"%s\" \"%s\"\n", major, pagelist);
40: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.