Using tpipe
is more like using a Unix pipeline than
using a single Unix command. You give
an input specifer which determines the table to be operated on,
some filter specifiers which determine the operations which will
be performed on it,
and an output specifier which determines what should happen to the
processed data.
The table is streamed through the processing filters in the order
in which you've given them, and the processed data are eventually
sent to the destination, which may be an output table file or
some other operation like displaying it in TOPCAT or calculating
the per-column statistics. In most cases
the processing is passed through the pipeline a row at a time,
meaning that the amount of memory required is small
(though in some cases, for instance sorting, this is not possible).
Although a similar effect could be achieved by stringing together
several single-operation tpipe
invocations in an
actual Unix pipe,
with the data flowing between the commands in byte streams using
one or other of the supported table formats, the way tpipe
works makes it much more efficient to do all the work within one
invocation.
The basic form of a tpipe
invocation is therefore
tpipe <input-specifier> <filter-specifiers> <mode-specifier> <other-flags>(though in fact these elements can appear in any order and they are all optional). If you don't have the Unix scripts installed, invoke it as described in Section 2 using the classname
uk.ac.starlink.ttools.TablePipe
.
The different sets of arguments are described in the following subsections.
There are many different flags, some with supplementary arguments,
which may look daunting. However, if you make an error in specifying
them, tpipe
will try to print a message which explains
what has gone wrong, so with a little bit of trial and error it
should be possible to make it do what you want.