Annotation of src/usr.bin/colrm/colrm.1, Revision 1.9
1.9 ! schwarze 1: .\" $OpenBSD: colrm.1,v 1.8 2011/12/28 22:27:18 schwarze Exp $
1.1 deraadt 2: .\" $NetBSD: colrm.1,v 1.3 1995/03/26 09:04:01 glass Exp $
3: .\"
4: .\" Copyright (c) 1980, 1990, 1993
5: .\" The Regents of the University of California. All rights reserved.
6: .\"
7: .\" Redistribution and use in source and binary forms, with or without
8: .\" modification, are permitted provided that the following conditions
9: .\" are met:
10: .\" 1. Redistributions of source code must retain the above copyright
11: .\" notice, this list of conditions and the following disclaimer.
12: .\" 2. Redistributions in binary form must reproduce the above copyright
13: .\" notice, this list of conditions and the following disclaimer in the
14: .\" documentation and/or other materials provided with the distribution.
1.6 millert 15: .\" 3. Neither the name of the University nor the names of its contributors
1.1 deraadt 16: .\" may be used to endorse or promote products derived from this software
17: .\" without specific prior written permission.
18: .\"
19: .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20: .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21: .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22: .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23: .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24: .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25: .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26: .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27: .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28: .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29: .\" SUCH DAMAGE.
30: .\"
31: .\" @(#)colrm.1 8.1 (Berkeley) 6/6/93
32: .\"
1.9 ! schwarze 33: .Dd $Mdocdate: December 28 2011 $
1.1 deraadt 34: .Dt COLRM 1
1.4 aaron 35: .Os
1.1 deraadt 36: .Sh NAME
37: .Nm colrm
38: .Nd remove columns from a file
39: .Sh SYNOPSIS
40: .Nm colrm
41: .Op Ar start Op Ar stop
42: .Sh DESCRIPTION
1.5 aaron 43: .Nm
1.1 deraadt 44: removes selected columns from the lines of a file.
45: Input is read from the standard input.
46: Output is written to the standard output.
47: .Pp
48: If only the
49: .Ar start
50: column is specified, columns numbered less than the
51: .Ar start
52: column will be written.
53: If both
54: .Ar start
55: and
56: .Ar stop
57: columns are specified, columns numbered less than the
58: .Ar start
59: column
60: or greater than the
61: .Ar stop
62: column will be written.
63: Column numbering starts with one, not zero.
64: .Pp
1.9 ! schwarze 65: Each character occupies the number of columns defined by
! 66: .Xr wcwidth 3 .
! 67: Zero-width characters belong to the previous column rather
! 68: than to the following column.
! 69: If deletion of half of a double-width character is requested,
! 70: its remaining half is replaced by a blank character.
! 71: Non-printable characters are treated as if they had width 1.
! 72: Each invalid byte is regarded as a non-printable character.
! 73: .Pp
! 74: Tab characters increment the input column count to the next multiple
! 75: of eight.
! 76: If they intersect or follow a deletion, they are expanded to blank
! 77: characters such that the original alignment is preserved.
! 78: .Pp
! 79: Backspace characters decrement the column count by the width of the
! 80: previous character.
! 81: If they follow a character that is completely or partially deleted,
! 82: they are deleted together with that character.
! 83: If they follow a character that is partially deleted,
! 84: they also suppress printing of the replacement blank character.
! 85: .Pp
! 86: For compatibility with
! 87: .St -p1003.1-2008
! 88: .Xr fold 1 ,
! 89: if a double-width character is followed by two backspace characters
! 90: instead of the usual one, both are regarded as belonging to that
! 91: character, and the second one does not decrement the column count.
! 92: .Sh ENVIRONMENT
! 93: .Bl -tag -width LC_CTYPE
! 94: .It Ev LC_CTYPE
! 95: The character set
! 96: .Xr locale 1 .
! 97: It decides which sequences of bytes are treated as characters,
! 98: and what their display width is.
! 99: If unset or set to
! 100: .Qq C ,
! 101: .Qq POSIX ,
! 102: or an unsupported value, each byte except tab and backspace is treated
! 103: as a character of width 1.
! 104: .El
1.1 deraadt 105: .Sh SEE ALSO
106: .Xr awk 1 ,
107: .Xr column 1 ,
108: .Xr cut 1 ,
109: .Xr paste 1
110: .Sh HISTORY
111: The
1.5 aaron 112: .Nm
1.8 schwarze 113: utility first appeared in
114: .Bx 1 .
115: .Sh AUTHORS
116: .An Jeff Schriebman
117: wrote the original version of
118: .Nm
119: in November 1974.
1.9 ! schwarze 120: .Sh BUGS
! 121: If two characters of different widths are followed by two backspace
! 122: characters in a row, the column count is decremented twice by the
! 123: width of the second character rather than by the sum of both widths.
! 124: This is hardly a practical problem because not even backspace
! 125: encoding in
! 126: .Xr roff 7
! 127: style uses such double-backspace sequences.