xref: /openbsd/usr.bin/colrm/colrm.1 (revision 73471bf0)
1.\"	$OpenBSD: colrm.1,v 1.10 2016/10/24 13:46:58 schwarze Exp $
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.
15.\" 3. Neither the name of the University nor the names of its contributors
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.\"
33.Dd $Mdocdate: October 24 2016 $
34.Dt COLRM 1
35.Os
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
43.Nm
44removes selected columns from the lines of a file.
45Input is read from the standard input.
46Output is written to the standard output.
47.Pp
48If only the
49.Ar start
50column is specified, columns numbered less than the
51.Ar start
52column will be written.
53If both
54.Ar start
55and
56.Ar stop
57columns are specified, columns numbered less than the
58.Ar start
59column
60or greater than the
61.Ar stop
62column will be written.
63Column numbering starts with one, not zero.
64.Pp
65Each character occupies the number of columns defined by
66.Xr wcwidth 3 .
67Zero-width characters belong to the previous column rather
68than to the following column.
69If deletion of half of a double-width character is requested,
70its remaining half is replaced by a blank character.
71Non-printable characters are treated as if they had width 1.
72Each invalid byte is regarded as a non-printable character.
73.Pp
74Tab characters increment the input column count to the next multiple
75of eight.
76If they intersect or follow a deletion, they are expanded to blank
77characters such that the original alignment is preserved.
78.Pp
79Backspace characters decrement the column count by the width of the
80previous character.
81If they follow a character that is completely or partially deleted,
82they are deleted together with that character.
83If they follow a character that is partially deleted,
84they also suppress printing of the replacement blank character.
85.Pp
86For compatibility with
87.St -p1003.1-2008
88.Xr fold 1 ,
89if a double-width character is followed by two backspace characters
90instead of the usual one, both are regarded as belonging to that
91character, and the second one does not decrement the column count.
92.Sh ENVIRONMENT
93.Bl -tag -width LC_CTYPE
94.It Ev LC_CTYPE
95The character encoding
96.Xr locale 1 .
97It decides which byte sequences form characters
98and what their display width is.
99If unset or set to
100.Qq C ,
101.Qq POSIX ,
102or an unsupported value, each byte except tab and backspace is treated
103as a character of display width 1.
104.El
105.Sh SEE ALSO
106.Xr awk 1 ,
107.Xr column 1 ,
108.Xr cut 1 ,
109.Xr paste 1
110.Sh HISTORY
111The
112.Nm
113utility first appeared in
114.Bx 1 .
115.Sh AUTHORS
116.An Jeff Schriebman
117wrote the original version of
118.Nm
119in November 1974.
120.Sh BUGS
121If two characters of different widths are followed by two backspace
122characters in a row, the column count is decremented twice by the
123width of the second character rather than by the sum of both widths.
124This is hardly a practical problem because not even backspace
125encoding in
126.Xr roff 7
127style uses such double-backspace sequences.
128