| .\" Copyright (c) 1990 The Regents of the University of California. |
| .\" All rights reserved. |
| .\" |
| .\" This code is derived from software contributed to Berkeley by |
| .\" Michael Rendell. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. All advertising materials mentioning features or use of this software |
| .\" must display the following acknowledgement: |
| .\" This product includes software developed by the University of |
| .\" California, Berkeley and its contributors. |
| .\" 4. Neither the name of the University nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .\" @(#)col.1 6.8 (Berkeley) 6/17/91 |
| .\" |
| .Dd June 17, 1991 |
| .Dt COL 1 |
| .Os |
| .Sh NAME |
| .Nm col |
| .Nd filter reverse line feeds from input |
| .Sh SYNOPSIS |
| .Nm col |
| .Op Fl bfpx |
| .Op Fl l Ar num |
| .Sh DESCRIPTION |
| .Nm Col |
| filters out reverse (and half reverse) line feeds so the output is |
| in the correct order with only forward and half forward line |
| feeds, and replaces white-space characters with tabs where possible. |
| This can be useful in processing the output of |
| .Xr nroff 1 |
| and |
| .Xr tbl 1 . |
| .Pp |
| .Nm Col |
| reads from standard input and writes to standard output. |
| .Pp |
| The options are as follows: |
| .Bl -tag -width "-lnum" |
| .It Fl b |
| Do not output any backspaces, printing only the last character |
| written to each column position. |
| .It Fl f |
| Forward half line feeds are permitted (``fine'' mode). |
| Normally characters printed on a half line boundary are printed |
| on the following line. |
| .It Fl p |
| Force unknown control sequences to be passed through unchanged. |
| Normally, |
| .Nm col |
| will filter out any control sequences from the input other than those |
| recognized and interpreted by itself, which are listed below. |
| .It Fl x |
| Output multiple spaces instead of tabs. |
| .It Fl l Ns Ar num |
| Buffer at least |
| .Ar num |
| lines in memory. |
| By default, 128 lines are buffered. |
| .El |
| .Pp |
| The control sequences for carriage motion that |
| .Nm col |
| understands and their decimal values are listed in the following |
| table: |
| .Pp |
| .Bl -tag -width "carriage return" -compact |
| .It ESC\-7 |
| reverse line feed (escape then 7) |
| .It ESC\-8 |
| half reverse line feed (escape then 8) |
| .It ESC\-9 |
| half forward line feed (escape then 9) |
| .It backspace |
| moves back one column (8); ignored in the first column |
| .It carriage return |
| (13) |
| .It newline |
| forward line feed (10); also does carriage return |
| .It shift in |
| shift to normal character set (15) |
| .It shift out |
| shift to alternate character set (14) |
| .It space |
| moves forward one column (32) |
| .It tab |
| moves forward to next tab stop (9) |
| .It vertical tab |
| reverse line feed (11) |
| .El |
| .Pp |
| All unrecognized control characters and escape sequences are |
| discarded. |
| .Pp |
| .Nm Col |
| keeps track of the character set as characters are read and makes |
| sure the character set is correct when they are output. |
| .Pp |
| If the input attempts to back up to the last flushed line, |
| .Nm col |
| will display a warning message. |
| .Sh SEE ALSO |
| .Xr expand 1 , |
| .Xr nroff 1 , |
| .Xr tbl 1 |
| .Sh STANDARDS |
| The |
| .Nm col |
| utility conforms to the Single UNIX Specification, Version 2. The |
| .Fl l |
| option is an extension to the standard. |
| .Sh HISTORY |
| A |
| .Nm col |
| command |
| appeared in Version 6 AT&T UNIX. |
| .Sh AVAILABILITY |
| The col command is part of the util-linux-ng package and is available from |
| ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/. |