|
|
Initial revision
# TABLC(1)
#
# Tabulate characters
#
# Ralph E. Griswold
#
# Last modified 8/11/84
#
procedure main(x)
local ccount, unique, order, i, s, a, pair, rwidth
unique := 0 # switch to list unique usage only
order := 1 # alphabetical ordering switch
i := 0
while i < *x do {
s := x[i +:= 1] | break
case s of {
"-a": order := 1
"-n": order := 2
"-u": unique := 1
default: Usage()
}
}
ccount := table(0) # table of characters
while ccount[reads()] +:= 1
a := sort(ccount,order)
if unique = 1 then {
every pair := !a do
if pair[2] = 1 then write(pair[1])
}
else {
rwidth := 0
every rwidth<:= *((!a)[2])
every pair := !a do
write(left(image(pair[1]),10),right(pair[2],rwidth))
}
end
procedure Usage()
stop("usage: tablc [-a -n -u]")
end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.