1.\" Copyright (c) 1990, 1991, 1993, 1994 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. Neither the name of the University nor the names of its contributors 13.\" may be used to endorse or promote products derived from this software 14.\" without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.\" @(#)split.1 8.3 (Berkeley) 4/16/94 29.\" $FreeBSD$ 30.\" 31.Dd April 18, 2023 32.Dt SPLIT 1 33.Os 34.Sh NAME 35.Nm split 36.Nd split a file into pieces 37.Sh SYNOPSIS 38.Nm 39.Op Fl d 40.Op Fl l Ar line_count 41.Op Fl a Ar suffix_length 42.Op Ar file Op Ar prefix 43.Nm 44.Op Fl d 45.Fl b Ar byte_count Ns 46.Oo 47.Sm off 48.Cm K | k | M | m | G | g 49.Sm on 50.Oc 51.Op Fl a Ar suffix_length 52.Op Ar file Op Ar prefix 53.Nm 54.Op Fl d 55.Fl n Ar chunk_count 56.Op Fl a Ar suffix_length 57.Op Ar file Op Ar prefix 58.Nm 59.Op Fl d 60.Fl p Ar pattern 61.Op Fl a Ar suffix_length 62.Op Ar file Op Ar prefix 63.Sh DESCRIPTION 64The 65.Nm 66utility reads the given 67.Ar file 68and breaks it up into files of 1000 lines each 69(if no options are specified), leaving the 70.Ar file 71unchanged. 72If 73.Ar file 74is a single dash 75.Pq Sq Fl 76or absent, 77.Nm 78reads from the standard input. 79.Pp 80The options are as follows: 81.Bl -tag -width indent 82.It Fl a Ar suffix_length 83Use 84.Ar suffix_length 85letters to form the suffix of the file name. 86.It Fl b Ar byte_count Ns Oo 87.Sm off 88.Cm K | k | M | m | G | g 89.Sm on 90.Oc 91Create split files 92.Ar byte_count 93bytes in length. 94If 95.Cm k 96or 97.Cm K 98is appended to the number, the file is split into 99.Ar byte_count 100kilobyte pieces. 101If 102.Cm m 103or 104.Cm M 105is appended to the number, the file is split into 106.Ar byte_count 107megabyte pieces. 108If 109.Cm g 110or 111.Cm G 112is appended to the number, the file is split into 113.Ar byte_count 114gigabyte pieces. 115.It Fl d 116Use a numeric suffix instead of a alphabetic suffix. 117.It Fl l Ar line_count 118Create split files 119.Ar line_count 120lines in length. 121.It Fl n Ar chunk_count 122Split file into 123.Ar chunk_count 124smaller files. 125The first n - 1 files will be of size (size of 126.Ar file 127/ 128.Ar chunk_count 129) 130and the last file will contain the remaining bytes. 131.It Fl p Ar pattern 132The file is split whenever an input line matches 133.Ar pattern , 134which is interpreted as an extended regular expression. 135The matching line will be the first line of the next output file. 136This option is incompatible with the 137.Fl b 138and 139.Fl l 140options. 141.El 142.Pp 143If additional arguments are specified, the first is used as the name 144of the input file which is to be split. 145If a second additional argument is specified, it is used as a prefix 146for the names of the files into which the file is split. 147In this case, each file into which the file is split is named by the 148prefix followed by a lexically ordered suffix using 149.Ar suffix_length 150characters in the range 151.Dq Li a Ns - Ns Li z . 152If 153.Fl a 154is not specified, two letters are used as the suffix. 155.Pp 156If the 157.Ar prefix 158argument is not specified, the file is split into lexically ordered 159files named with the prefix 160.Dq Li x 161and with suffixes as above. 162.Sh ENVIRONMENT 163The 164.Ev LANG , LC_ALL , LC_CTYPE 165and 166.Ev LC_COLLATE 167environment variables affect the execution of 168.Nm 169as described in 170.Xr environ 7 . 171.Sh EXIT STATUS 172.Ex -std 173.Sh EXAMPLES 174Split input into as many files as needed, so that each file contains at most 2 175lines: 176.Bd -literal -offset indent 177$ echo -e "first line\\nsecond line\\nthird line\\nforth line" | split -l2 178.Ed 179.Pp 180Split input in chunks of 10 bytes using numeric prefixes for file names. 181This generates two files of 10 bytes (x00 and x01) and a third file (x02) with the 182remaining 2 bytes: 183.Bd -literal -offset indent 184$ echo -e "This is 22 bytes long" | split -d -b10 185.Ed 186.Pp 187Split input generating 6 files: 188.Bd -literal -offset indent 189$ echo -e "This is 22 bytes long" | split -n 6 190.Ed 191.Pp 192Split input creating a new file every time a line matches the regular expression 193for a 194.Dq t 195followed by either 196.Dq a 197or 198.Dq u 199thus creating two files: 200.Bd -literal -offset indent 201$ echo -e "stack\\nstock\\nstuck\\nanother line" | split -p 't[au]' 202.Ed 203.Sh SEE ALSO 204.Xr csplit 1 , 205.Xr re_format 7 206.Sh STANDARDS 207The 208.Nm 209utility conforms to 210.St -p1003.1-2001 . 211.Sh HISTORY 212A 213.Nm 214command appeared in 215.At v3 . 216.Pp 217Before 218.Fx 14 , 219pattern and line matching only operated on lines shorter than 65,536 bytes. 220