Files

336 lines
8.8 KiB
Groff

.TH trim "" "" "/rdb Command"
.PC "Trim excess white space from a table"
\fBtrim [-[l|n|ln] \fIcol...\fB][-r[\fIn\fB] \fIcol...\fB][\-t'\fIc\fB']...< \fItable\fR
.PP
.II "white space^trim from table"
.II "table^trim white space"
.II "column^trim white space"
The command
.B trim
trims excess white space from each column in
.IR table .
This lets you print a wide table with the minimum width for each column.
Please note that
.B trim
removes all tabs from
.IR table ,
which renders it unreadable by any
.B /rdb
command,
including
.B trim
itself.
.PP
.B trim
without any options does the best it can to squeeze
.I table
without discarding any information.
It make each column as wide as its widest column name or data item.
You can also tell
.B trim
to reduce a column's width, even if it has to throw away characters.
.PP
Note that
.B trim
trim all columns, even if some are listed with the options.
Most other
.B /rdb
commands, such as
.BR justify ,
affect only the columns named on the command line \(em
unless none are listed, in which case they do the same thing to all of them.
.SH Options
.B trim
recognizes the following options:
.IP \fIn\fR
The number of characters remaining after the trim.
.IP "\fB\-\fIn column ...\fR"
Return only
.I n
characters from the left of
.IR column .
.IP "\fB\-l\fIn column ...\fR"
Return only
.I n
characters from the left of
.IR column .
.IP "\fB\-r\fIn column ...\fR"
Return only
.I n
characters from the right of column.
.IP "\fB\-t\(aa\fIc\fB\(aa\fR"
Use character
.I c
as the column separator.
For example, you may want to keep the tab character so that
the table can be used by other
.B /rdb
commands.
.sp \n(pDu
When use this option,
remember that the COHERENT shell gives special treatment to
certain characters, such as the tab and the vertical bar `|'.
You must quote these characters by enclosing them between apostrophes.
.PP
The above options affect the columns named.
The options are
.I sticky,
which means that you can follow an option with
as many column names as you wish.
.SH Example
Consider, once again, table
.BR inventory ,
which appears as follows:
.DM
Item Amount Cost Value Description
------- ------- ------- ------- --------------
1 3 5.00 15.00 rubber gloves
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cloth
6 89 14.75 1312.75 bunsen burners
7 5 175.00 875.00 scales
.DE
.PP
To trim it, type:
.DM
trim < inventory
.DE
.PP
This prints the following:
.DM
Item Amount Cost Value Description
---- ------ ------ ------- --------------
1 3 5.00 15.00 rubber gloves
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cloth
6 89 14.75 1312.75 bunsen burners
7 5 175.00 875.00 scales
.DE
.PP
Note that the length of the column names
.B Item
and
.B Amount
determined the width of their columns, but in all other columns the
data determined the width.
.PP
To examine what
.B trim
did exactly,
you can use the command
.B see .
For example:
.DM
Item Amount Cost Value Description
---- ------ ------ ------- --------------
1 3 5.00 15.00 rubber gloves
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cloth
6 89 14.75 1312.75 bunsen burners
7 5 175.00 875.00 scales
.DE
.PP
Note that there are no tabs \fB^I\fR.
This table is only for printing.
Don't input or pipe this output to another
.B /rdb
command unless you use the
.B -t
option, which retains the tab as a column separator.
.PP
We can further squeeze the table with the options
\fB\-\fIn\fR, \fB\-l\fIn\fR, and \fB\-r\fIn\fR.
For example, the command
.DM
trim -1 Item < inventory
.DE
.PP
reduces column
.B Item
to only one character.
This produces the following:
.DM
I Amount Cost Value Description
- ------ ----- ------- --------------
1 3 5.00 15.00 rubber gloves
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cloth
6 89 14.75 1312.75 bunsen burners
7 5 175.00 875.00 scales
.DE
.PP
Note that to reduce
.I Item
to one character,
.B trim
had to throw away all but the `I'
of the column name
.BR Item .
Note that the other columns were trimmed normally.
.PP
Because options are sticky, you can name several columns after one option:
For example, the command
.DM
trim -5 Item Amount Cost Description < inventory
.DE
.PP
reduces the four named columns to a maximum of five characters.
This produces the following:
.DM
Item Amoun Cost Value Descr
----- ----- ----- ------- -----
1 3 5.00 15.00 rubbe
2 100 0.50 50.00 test
3 5 8.00 40.00 clamp
4 23 1.98 45.54 plate
5 99 2.45 242.55 clean
6 89 14.75 1312.75 bunse
7 5 175 875.00 scale
.DE
.PP
You can use the option \fB\-r\fIn\fR
both to save the
.I n
right characters of a column and to line up numbers on the right.
For example, the command
.DM
trim -r3 Amount < inventory
.DE
.PP
produces:
.DM
Item Amo Cost Value Description
---- --- ----- ------- --------------
1 3 5.00 15.00 rubber gloves
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cloth
6 89 14.75 1312.75 bunsen burners
7 5 175.00 875.00 scales
.DE
.PP
Note that the column name
.B Amount
has been reduced to
.BR Amo .
Also, the column is right justified as a result of removing the
right three characters of each field in the column.
.PP
A complex trim might be done like this:
.DM
trim -1 Item -r3 Amount -r5 Cost -l7 Value Description < inventory
.DE
.PP
This command produces:
.DM
I Amo Cost Value Descrip
- --- ----- ------- -------
1 3 5.00 15.00 rubber
2 100 0.50 50.00 test tu
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleanin
6 89 14.75 1312.75 bunsen
7 5 175.0 875.00 scales
.DE
.PP
We have squeezed this table a lot.
.PP
We have been working with an unjustified table.
What if the table had been justified?
First let's justify the table:
.DM
justify < inventory > tmp ; mv tmp inventory
.DE
.PP
Now
.B inventory
is justified, as follows:
.DM
Item Amount Cost Value Description
------- ------- ------- ------- ---------------
1 3 5.00 15.00 rubber gloves
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cloth
6 89 14.75 1312.75 bunsen burners
7 5 175.00 875.00 scales
.DE
.PP
Now, if we trim, you see:
.DM
Item Amount Cost Value Description
---- ------ ------ ------- --------------
5.0 15.00 rubber gloves
10 0.5 50.00 test tubes
8.0 40.00 clamps
2 1.9 45.54 plates
9 2.4 242.55 cleaning cloth
8 14.7 1312.75 bunsen burners
175.0 875.00 scales
.DE
.PP
This mess results from trimming the right characters in
the right justified columns
.BR Item ,
.BR Amount ,
and
.BR Cost .
This preserved the blank spaces, which are to the left in each column,
and threw away the data.
One way to fix this is to tell
.B trim
that the columns are right justified, like this:
.DM
trim -r Item Amount Cost < inventory
.DE
.PP
This produces:
.DM
Item Amount Cost Value Description
---- ------ ------ ------- --------------
1 3 5.00 15.00 rubber gloves
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cloth
6 89 14.75 1312.75 bunsen burners
7 5 175.00 875.00 scales
.DE
.PP
You can also compress the file before piping it into
.BR trim .
For further compression, use the command:
.DM
trim -r1 Item -r3 Amount -r6 Cost -l11 Description < inventory
.DE
.PP
This produces:
.DM
I Amo Cost Value Description
- --- ---- ----- -----------
1 3 5.00 15.00 rubber glov
2 100 0.50 50.00 test tubes
3 5 8.00 40.00 clamps
4 23 1.98 45.54 plates
5 99 2.45 242.55 cleaning cl
6 89 14.75 1312.75 bunsen burn
7 5 175.00 875.00 scales
.DE
.SH "See Also"
.B
compresss,
justify,
trimblank
.R