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