sq
compresses a sorted list of words (a dictionary).
For example:
sort /usr/dict/words | sq | compress > words.sq.Z
will compress dict by about a factor of 4.
unsq
uncompress the output of
sq.
For example:
compress -d < words.sq.Z | unsq | sort -f -o words
will uncompress a dictionary compressed with
sq.
The squeezing is achieved by eliminating common prefixes, and replacing
them with a single character which encodes the number of characters
shared with the preceding word.
The prefix size is encoded as a single printable character:
0-9 represent 0-9, A-Z represent 10-35, and a-z represent 36-61.