xref: /openbsd/usr.bin/cut/cut.1 (revision dda28197)
1.\"	$OpenBSD: cut.1,v 1.27 2016/10/24 13:46:58 schwarze Exp $
2.\"	$NetBSD: cut.1,v 1.6 1995/10/02 20:19:26 jtc Exp $
3.\"
4.\" Copyright (c) 1989, 1990, 1993
5.\"	The Regents of the University of California.  All rights reserved.
6.\"
7.\" This code is derived from software contributed to Berkeley by
8.\" the Institute of Electrical and Electronics Engineers, Inc.
9.\"
10.\" Redistribution and use in source and binary forms, with or without
11.\" modification, are permitted provided that the following conditions
12.\" are met:
13.\" 1. Redistributions of source code must retain the above copyright
14.\"    notice, this list of conditions and the following disclaimer.
15.\" 2. Redistributions in binary form must reproduce the above copyright
16.\"    notice, this list of conditions and the following disclaimer in the
17.\"    documentation and/or other materials provided with the distribution.
18.\" 3. Neither the name of the University nor the names of its contributors
19.\"    may be used to endorse or promote products derived from this software
20.\"    without specific prior written permission.
21.\"
22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32.\" SUCH DAMAGE.
33.\"
34.\"     @(#)cut.1	8.1 (Berkeley) 6/6/93
35.\"
36.Dd $Mdocdate: October 24 2016 $
37.Dt CUT 1
38.Os
39.Sh NAME
40.Nm cut
41.Nd select portions of each line of a file
42.Sh SYNOPSIS
43.Nm cut
44.Fl b Ar list
45.Op Fl n
46.Op Ar
47.Nm cut
48.Fl c Ar list
49.Op Ar
50.Nm cut
51.Fl f Ar list
52.Op Fl s
53.Op Fl d Ar delim
54.Op Ar
55.Sh DESCRIPTION
56The
57.Nm
58utility selects portions of each line (as specified by
59.Ar list )
60from each
61.Ar file
62and writes them to the standard output.
63If no
64.Ar file
65arguments are specified, or a file argument is a single dash
66.Pq Sq \- ,
67.Nm
68reads from the standard input.
69The items specified by
70.Ar list
71can be in terms of column position or in terms of fields delimited
72by a special character.
73Column and field numbering starts from 1;
74output is in the same order as input, not in the order selected.
75.Pp
76.Ar list
77is a comma or whitespace separated set of numbers and/or
78number ranges.
79Number ranges consist of a number, a dash
80.Pq Sq \- ,
81and a second number
82which select the fields or columns from the first number to the second,
83inclusive.
84Numbers or number ranges may be preceded by a dash, which selects all
85fields or columns from 1 to the first number.
86Numbers or number ranges may be followed by a dash, which selects all
87fields or columns from the last number to the end of the line.
88Numbers and number ranges may be repeated, overlapping, and in any order.
89It is not an error to select fields or columns not present in the
90input line.
91.Pp
92The options are as follows:
93.Bl -tag -width Ds
94.It Fl b Ar list
95The
96.Ar list
97specifies byte positions.
98.It Fl c Ar list
99The
100.Ar list
101specifies character positions.
102.It Fl d Ar delim
103Use the first character of
104.Ar delim
105as the field delimiter character.
106The default is the
107.Aq TAB
108character.
109.It Fl f Ar list
110The
111.Ar list
112specifies fields, separated by the field delimiter character.
113The selected fields are output,
114separated by the field delimiter character.
115.It Fl n
116Do not split multi-byte characters.
117A character is written to standard output if and only if the byte
118position holding its last byte is selected.
119.It Fl s
120Suppresses lines with no field delimiter characters.
121Unless specified, lines with no delimiters are passed through unmodified.
122.El
123.Sh ENVIRONMENT
124.Bl -tag -width LC_CTYPE
125.It Ev LC_CTYPE
126The character encoding
127.Xr locale 1 .
128It decides which byte sequences form characters.
129If unset or set to
130.Qq C ,
131.Qq POSIX ,
132or an unsupported value,
133.Fl c
134does the same as
135.Fl b ,
136.Fl n
137has no effect, and
138.Fl d
139uses the first byte of
140.Ar delim .
141.El
142.Sh EXIT STATUS
143The
144.Nm
145utility exits 0 if all input files are output successfully,
146and >0 if an error occurs.
147.Sh EXAMPLES
148Extract login names and shells from the system
149.Xr passwd 5
150file as
151.Dq name:shell
152pairs:
153.Pp
154.Dl "$ cut -d : -f 1,7 /etc/passwd"
155.Pp
156Show the names and login times of logged in users:
157.Pp
158.Dl "$ who | cut -c 1-8,18-30"
159.Sh SEE ALSO
160.Xr awk 1 ,
161.Xr paste 1
162.Sh STANDARDS
163The
164.Nm
165utility is compliant with the
166.St -p1003.1-2008
167specification.
168