V10/cmd/sort/README
Posix P1003.2 sort utility from Unix research v10 system.
To build it:
make sort
To test it:
make test
On many systems, you may be able to make a faster sort:
make fast
make test
File sort.1 is a manual page.
---------------------------------------------------------
Extensions to POSIX:
Obsolescent features:
+pos -pos field specifications
-o recognized among file names
Traditional features not in POSIX:
-M for sorting by month
-T for setting temp directory
-y for setting memory size
-z (ignored)
-t may be combined with other options, e.g. -ct:
New features:
-g like -n, but allows e-format numbers
-s stable sort; break ties by original order,
not by raw bytes
Algorithm: distribution sort, with preconditioning of difficult keys
to make them into simple strings.
Overlong data spills to intermediate files, where it is
sorted by merging.
Language: ANSI C.
Testing: passes the accompanying sorttest suite, which exercises
every line of code, except for
option -T
some instances of -y
error comments
interrupt handling
excessive exponents (>~1000) in -g
Typical problems:
On some systems the ANSI standard functions memmove.c
and strtoul.c are slow or absent. Code for these
functions is included; use it if you have to
(see Makefile).
The sorttest suite uses awk as described in the
Aho/Kernighan/Weinberger book. Older versions of awk
may not be adequate.
ANSI header files are assumed, but because headers
vary among systems, you may have to do some clever
rearrangement of #include directives.
Notes on "make fast":
In extreme cases (very long records in nearly sorted
order) the "make fast" sort can run 40% faster than the
"make sort" version. It uses a private addition to
classic System V stdio, not universally portable.
However, if the new function cgets() will compile, it
will almost certainly work.
Report troubles to:
Doug McIlroy
908 582 6050
research!doug
doug@research.att.com