1cat <<'E_O_F' >/tmp/$$a
2BEGIN {
3	printf("\n\t\t\t\tUUCP Traffic Summary\n\n")
4	printf("\t\t\t\tFor the previous 30 days\n\n")
5	printf("\t       Calls     Minutes      Files          Bytes      Effective Unused\n")
6	printf("Site          To/From    To/From     To/From      Sent/Received  Baudrate Bwidth\n")
7E_O_F
8awk '$1 !~ /#/ && $1 !~ /xxx/{print $1,$3}' /usr/lib/uucp/L.sys | sort -u |
9sed 's/\(.*\) \(.*\)/	type["\1"] = "\2"/' >>/tmp/$$a
10cat <<'E_O_F' >>/tmp/$$a
11}
12{
13		how = type[$1]
14		tcallsto[how] += $2
15		tcallsfrom[how] += $3
16		tminto[how] += $4
17		tminfrom[how] += $5
18		tfilesto[how] += $6
19		tfilesfrom[how] += $7
20		tbytesto[how] += $8
21		tbytesfrom[how] += $9
22		tbaudrate[how] += $10
23		tpercent[how] += $11
24		tfailed[how] += $12
25		tretry[how] += $13
26		tn[how]++
27}
28name == $1 {
29	callsto += $2
30	callsfrom += $3
31	minto += $4
32	minfrom += $5
33	filesto += $6
34	filesfrom += $7
35	bytesto += $8
36	bytesfrom += $9
37	baudrate += $10
38	percent += $11
39	failed += $12
40	retry += $13
41	n++
42}
43name != $1 {
44	if (NR > 1) {
45		s = name
46		if (failed > 0) {
47			s = s "[" failed
48			if (retry > 0)
49				s = s "/" retry "]"
50			else
51				s = s "]"
52		} else {
53			if (retry > 0)
54				s = s "[/" retry "]"
55		}
56		printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %9d/%-9d %6d %5d%%\n", \
57		s, callsto, callsfrom, minto, minfrom, filesto, \
58		filesfrom, bytesto, bytesfrom, baudrate/n, percent/n)
59	}
60
61	callsto = $2
62	callsfrom = $3
63	minto = $4
64	minfrom = $5
65	filesto = $6
66	filesfrom = $7
67	bytesto = $8
68	bytesfrom = $9
69	baudrate = $10
70	percent = $11
71	failed = $12
72	retry = $13
73	n = 1
74	name = $1
75}
76END {
77	printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %9d/%-9d %6d %5d%%\n", \
78		name, callsto, callsfrom, minto, minfrom, filesto, \
79		filesfrom, bytesto, bytesfrom, baudrate/n, percent/n)
80	printf("------------ ----/---- -----/----- -----/----- ---------/--------- ------  -----\n")
81	for (i in tn) {
82
83		s = i
84		if (tfailed[i] > 0) {
85			s = s "[" tfailed[i]
86			if (tretry[i] > 0)
87				s = s "/" tretry[i] "]"
88			else
89				s = s "]"
90		} else {
91			if (tretry[i] > 0)
92				s = s "[/" tretry[i] "]"
93		}
94		printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %10d/%-10d %6d %3d%%\n", \
95		s, tcallsto[i], tcallsfrom[i], tminto[i], tminfrom[i], \
96		tfilesto[i], tfilesfrom[i], tbytesto[i], tbytesfrom[i], \
97		tbaudrate[i]/tn[i], tpercent[i]/tn[i])
98		totcallsto += tcallsto[i]
99		totcallsfrom += tcallsfrom[i]
100		totminto += tminto[i]
101		totminfrom += tminfrom[i]
102		totfilesto += tfilesto[i]
103		totfilesfrom += tfilesfrom[i]
104		totbytesto += tbytesto[i]
105		totbytesfrom += tbytesfrom[i]
106		totbaudrate += tbaudrate[i]
107		totpercent += tpercent[i]
108		totfailed += tfailed[i]
109		totretry += tretry[i]
110		totn += tn[i]
111	}
112	printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %10d/%-10d %6d %3d%%\n", \
113		"Total", totcallsto, totcallsfrom, totminto, \
114		totminfrom, totfilesto, totfilesfrom, totbytesto, \
115		totbytesfrom ,  totbaudrate/totn,  totpercen/totn)
116}
117E_O_F
118for i in `grep -l 'UUCP Summary' /usr/msgs/*`
119do
120sed '1,/^Site/d
121/^[ ]*$/,$d
122s;\[/;[0/;
123s;\[\([0-9]*\)\];[\1/0];
124/\[/s;\([^\[]*\)\[\(.*\)/\(.*\)\]\(.*\);\1 \4 \2 \3;
125s!/! !g
126s/  */ /g
127s/%//
128' $i
129done | sort | awk -f /tmp/$$a
130rm -f /tmp/$$*
131