| SHOWTABLE(1p) | User Contributed Perl Documentation | SHOWTABLE(1p) |
showtable - Show data in nicely formatted columns
showtable [-options] [file]
Showtable reads an input data stream and displays it in a nicely formatted listing, with exact formatting depending upon the options. The input stream, file or "STDIN" by default should consist of data separated by tabs or the defined separator character (see -d).
The actual output formatting is peformed by the ShowTable module.
There are two general sets of options: those which help determine the format of the input, and those which determine the format of the output.
showtable -d: -f1,2-5 /etc/passwd
Using the file "/etc/passwd" for another example: to show the same first two fields, by name:
showtable -d: -titles=Login,UID -fields=Login,UID /etc/passwd
If -width is not given, then for all output but -html, the default value is either ""COLUMNS"", if defined, or 80, if not. Whith -html mode, there is no default value for -width; in other words, there is no limit to the width.
Example: To set the maximum width of the third column to 20 characters:
-cw=,,20
-attributes='BORDER=0 CELLSPACING=2 CELLPADDING=4'
would cause the following HTML:
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=4>
The default table attributes are:
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
Each fmtN can itself be multiple HTML items, separated by commas. Each HTML element can be given either as an HTML token (eg: ""\<BOLD\">"), or as a plain name (eg: ""BOLD"").
For example, here is a title format specification for three columns, where the first column title should be bold italic, the second italic, and the third italic in a smaller font:
-tf='BOLD,I;I;<FONT SIZE=-2>,I'
The URL text may contain these substitution strings:
%K - will be substituted with the current column name (or key).
%V - will be substituted with the current column value.
Multiple -url options may be given, if desired, rather than creating one long argument for a single -url. For example:
showtable -d: -f1,6 -titles=Login,Homedir \
-url='Login=mailto:%V' \
-url='HomeDir=file:%V' \
/etc/passwd
If the input type is box, then vertical and horizontal box characters are removed from the input stream, and blanks surrounding the vertical box characters are removed. The vertical box characters (column separaters) are ""|"" or "":"". The The horizontal box characters are ""+"" and ""-"".
Morever, data wrapped within a column is recognized and parsed as one column value, by recognizing the presence of a wrapping prefix or wrapping suffix character. Currently, the wrapping prefix character is "<", and the wrapping suffix character is ">".
An example of data wrapped within a column is given here. The table below has just two logical rows of data; with both rows having data wrapped into multiple physical rows.
+---------+---------+---------+
| Col 1 | Col 2 | Col 3 |
+---------+---------+---------+
| This is>| Another>| Row 1,3>|
|< a cont>|< value. |<is also>|
|<inued >| |<long. |
|<value. | | |
|This is >| Item2-2 | Item2-3 |
+---------+---------+---------+
When using the -list or -input=list options, either, or both, the input and output may be in a "list" format, which is implemented using the following syntax:
r1c1_name: r1c1_value
r1c2_name: r1c2_value
...
r1cN_name: r1cN_value
r2c1_name: r2c1_value
r2c2_name: r2c2_value
: r2c2_value_continued
...
r2cN_name: r2cN_value
rMc1_name: rMc1_value
rMc2_name: rMc2_value
...
rMcN_name: rMcN_value
Each row of data consists of one or more columns, and ends with a blank line.
Each column consists of a column name, followed by a colon ":", followed by an optional, single space or tab, followed by the column value, on the same line.
Continuation lines of the previous column value consist of one or more space or tab characters, a colon ":", one optional, single space or tab, followed by the continuation value. In the example above, The second column value of the second row was continued.
When using -html on data already containing HTML-formatted text, the -noescape option should be used. By default, all input text is assumed not to be HTML-formatted, and is escaped allowing embedded "<", ">" characters, if any, to be displayed correctly.
Alan K. Stebbens aks@stebbens.org
| 2022-10-13 | perl v5.36.0 |