[BACK]Return to rs.1 CVS log [TXT][DIR] Up to [local] / src / usr.bin / rs

Annotation of src/usr.bin/rs/rs.1, Revision 1.1

1.1     ! deraadt     1: .\" Copyright (c) 1993
        !             2: .\"    The Regents of the University of California.  All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms, with or without
        !             5: .\" modification, are permitted provided that the following conditions
        !             6: .\" are met:
        !             7: .\" 1. Redistributions of source code must retain the above copyright
        !             8: .\"    notice, this list of conditions and the following disclaimer.
        !             9: .\" 2. Redistributions in binary form must reproduce the above copyright
        !            10: .\"    notice, this list of conditions and the following disclaimer in the
        !            11: .\"    documentation and/or other materials provided with the distribution.
        !            12: .\" 3. All advertising materials mentioning features or use of this software
        !            13: .\"    must display the following acknowledgement:
        !            14: .\"    This product includes software developed by the University of
        !            15: .\"    California, Berkeley and its contributors.
        !            16: .\" 4. Neither the name of the University nor the names of its contributors
        !            17: .\"    may be used to endorse or promote products derived from this software
        !            18: .\"    without specific prior written permission.
        !            19: .\"
        !            20: .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        !            21: .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            22: .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            23: .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        !            24: .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            25: .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            26: .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            27: .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            28: .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            29: .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            30: .\" SUCH DAMAGE.
        !            31: .\"
        !            32: .\"    @(#)rs.1        8.2 (Berkeley) 12/30/93
        !            33: .\"
        !            34: .TH RS 1 "December 30, 1993"
        !            35: .UC 4
        !            36: .SH NAME
        !            37: rs \- reshape a data array
        !            38: .SH SYNOPSIS
        !            39: \fBrs [ \-[csCS][\fRx\fB][kKgGw][\fRN\fB]tTeEnyjhHm ] [ \fRrows\fB [ \fRcols\fB ] ]\fR
        !            40: .SH DESCRIPTION
        !            41: .I Rs
        !            42: reads the standard input, interpreting each line as a row
        !            43: of blank-separated entries in an array,
        !            44: transforms the array according to the options,
        !            45: and writes it on the standard output.
        !            46: With no arguments it transforms stream input into a columnar
        !            47: format convenient for terminal viewing.
        !            48: .PP
        !            49: The shape of the input array is deduced from the number of lines
        !            50: and the number of columns on the first line.
        !            51: If that shape is inconvenient, a more useful one might be
        !            52: obtained by skipping some of the input with the \fB\-k\fP option.
        !            53: Other options control interpretation of the input columns.
        !            54: .PP
        !            55: The shape of the output array is influenced by the
        !            56: .I rows
        !            57: and
        !            58: .I cols
        !            59: specifications, which should be positive integers.
        !            60: If only one of them is a positive integer,
        !            61: .I rs
        !            62: computes a value for the other which will accommodate
        !            63: all of the data.
        !            64: When necessary, missing data are supplied in a manner
        !            65: specified by the options and surplus data are deleted.
        !            66: There are options to control presentation of the output columns,
        !            67: including transposition of the rows and columns.
        !            68: .PP
        !            69: The options are described below.
        !            70: .IP \fB\-c\fRx
        !            71: Input columns are delimited by the single character \fIx\fP.
        !            72: A missing \fIx\fP is taken to be `^I'.
        !            73: .IP \fB\-s\fRx
        !            74: Like \fB\-c\fR, but maximal strings of \fIx\fP are delimiters.
        !            75: .IP \fB\-C\fRx
        !            76: Output columns are delimited by the single character \fIx\fP.
        !            77: A missing \fIx\fP is taken to be `^I'.
        !            78: .IP \fB\-S\fRx
        !            79: Like \fB\-C\fR, but padded strings of \fIx\fP are delimiters.
        !            80: .IP \fB\-t\fR
        !            81: Fill in the rows of the output array using the columns of the
        !            82: input array, that is, transpose the input while honoring any
        !            83: .I rows
        !            84: and
        !            85: .I cols
        !            86: specifications.
        !            87: .IP \fB\-T\fR
        !            88: Print the pure transpose of the input, ignoring any
        !            89: .I rows
        !            90: or
        !            91: .I cols
        !            92: specification.
        !            93: .IP \fB\-k\fRN
        !            94: Ignore the first \fIN\fR lines of input.
        !            95: .IP \fB\-K\fRN
        !            96: Like \fB\-k\fR, but print the ignored lines.
        !            97: .IP \fB\-g\fRN
        !            98: The gutter width (inter-column space), normally 2, is taken to be \fIN\fR.
        !            99: .IP \fB\-G\fRN
        !           100: The gutter width has \fIN\fR percent of the maximum
        !           101: column width added to it.
        !           102: .IP \fB\-e\fR
        !           103: Consider each line of input as an array entry.
        !           104: .IP \fB\-n\fR
        !           105: On lines having fewer entries than the first line,
        !           106: use null entries to pad out the line.
        !           107: Normally, missing entries are taken from the next line of input.
        !           108: .IP \fB\-y\fR
        !           109: If there are too few entries to make up the output dimensions,
        !           110: pad the output by recycling the input from the beginning.
        !           111: Normally, the output is padded with blanks.
        !           112: .IP \fB\-h\fR
        !           113: Print the shape of the input array and do nothing else.
        !           114: The shape is just the number of lines and the number of
        !           115: entries on the first line.
        !           116: .IP \fB\-H\fR
        !           117: Like \fB\-h\fR, but also print the length of each line.
        !           118: .IP \fB\-j\fR
        !           119: Right adjust entries within columns.
        !           120: .IP \fB\-w\fRN
        !           121: The width of the display, normally 80, is taken to be the positive
        !           122: integer \fIN\fP.
        !           123: .IP \fB\-m\fR
        !           124: Do not trim excess delimiters from the ends of the output array.
        !           125: .PP
        !           126: With no arguments,
        !           127: .I rs
        !           128: transposes its input, and assumes one array entry per input line
        !           129: unless the first non-ignored line is longer than the display width.
        !           130: Option letters which take numerical arguments interpret a missing
        !           131: number as zero unless otherwise indicated.
        !           132: .SH EXAMPLES
        !           133: .de IC
        !           134: .IP
        !           135: .ss 36
        !           136: .ft B
        !           137: ..
        !           138: .de NC
        !           139: .br
        !           140: .ss 12
        !           141: .PP
        !           142: ..
        !           143: .I Rs
        !           144: can be used as a filter to convert the stream output
        !           145: of certain programs (e.g.,
        !           146: .IR spell ,
        !           147: .IR du ,
        !           148: .IR file ,
        !           149: .IR look ,
        !           150: .IR nm ,
        !           151: .IR who ,
        !           152: and
        !           153: .IR wc (1))
        !           154: into a convenient ``window'' format, as in
        !           155: .IC
        !           156: who | rs
        !           157: .NC
        !           158: This function has been incorporated into the
        !           159: .IR ls (1)
        !           160: program, though for most programs with similar output
        !           161: .I rs
        !           162: suffices.
        !           163: .PP
        !           164: To convert stream input into vector output and back again, use
        !           165: .IC
        !           166: rs 1 0 | rs 0 1
        !           167: .NC
        !           168: A 10 by 10 array of random numbers from 1 to 100 and
        !           169: its transpose can be generated with
        !           170: .IC
        !           171: jot \-r 100 | rs 10 10 | tee array | rs \-T > tarray
        !           172: .NC
        !           173: In the editor
        !           174: .IR vi (1),
        !           175: a file consisting of a multi-line vector with 9 elements per line
        !           176: can undergo insertions and deletions,
        !           177: and then be neatly reshaped into 9 columns with
        !           178: .IC
        !           179: :1,$!rs 0 9
        !           180: .NC
        !           181: Finally, to sort a database by the first line of each 4-line field, try
        !           182: .IC
        !           183: rs \-eC 0 4 | sort | rs \-c 0 1
        !           184: .NC
        !           185: .SH SEE ALSO
        !           186: jot(1), vi(1), sort(1), pr(1)
        !           187: .SH BUGS
        !           188: Handles only two dimensional arrays.
        !           189:
        !           190: The algorithm currently reads the whole file into memory,
        !           191: so files that do not fit in memory will not be reshaped.
        !           192:
        !           193: Fields cannot be defined yet on character positions.
        !           194:
        !           195: Re-ordering of columns is not yet possible.
        !           196:
        !           197: There are too many options.