awk can do it all:
Code:
BEGIN {FS=":"}
{
hits[$1]++
ip_hits[$1 ":" substr($2, 1, 15)]
}
END {
for (i in ip_hits){ sub(/:.+/, "", i); unique[i]++ }
printf "%-20s %5s %s\n", "Page:", "Hits", "Unique Hits"
for (i in hits) printf "%-20s %5s %5s\n", i, hits[i], unique[i]
}