Reference

split(1)

split a file into pieces

NAME

split - split a file into pieces

SYNOPSIS

split [OPTION]... [FILE [PREFIX]]

DESCRIPTION

Output pieces of FILE to PREFIXaa, PREFIXab, ...; default size is 1000 lines, and default PREFIX is 'x'.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.

-a, --suffix-length=N

generate suffixes of length N (default 2)

--additional-suffix=SUFFIX

append an additional SUFFIX to file names

-b, --bytes=SIZE

put SIZE bytes per output file

-C, --line-bytes=SIZE

put at most SIZE bytes of records per output file

-d

use numeric suffixes starting at 0, not alphabetic

--numeric-suffixes[=FROM]

same as -d, but allow setting the start value

-x

use hex suffixes starting at 0, not alphabetic

--hex-suffixes[=FROM]

same as -x, but allow setting the start value

-e, --elide-empty-files

do not generate empty output files with '-n'

--filter=COMMAND

write to shell COMMAND; file name is $FILE

-l, --lines=NUMBER

put NUMBER lines/records per output file

-n, --number=CHUNKS

generate CHUNKS output files; see explanation below

-t, --separator=SEP

use SEP instead of newline as the record separator; '\0' (zero) specifies the NUL character

-u, --unbuffered

immediately copy input to output with '-n r/...'

--verbose

print a diagnostic just before each output file is opened

--help

display this help and exit

--version

output version information and exit

The SIZE argument is an integer and optional unit (example: 10K is 10*1024). Units are K,M,G,T,P,E,Z,Y,R,Q (powers of 1024) or KB,MB,... (powers of 1000). Binary prefixes can be used, too: KiB=K, MiB=M, and so on.

CHUNKS may be:

N

split into N files based on size of input

K/N

output Kth of N to standard output

l/N

split into N files without splitting lines/records

l/K/N

output Kth of N to standard output without splitting lines/records

r/N

like 'l' but use round robin distribution

r/K/N

likewise but only output Kth of N to standard output

-n (except -nr) will buffer to $TMPDIR, defaulting to /tmp, if the input size cannot easily be determined.

AUTHOR

Written by Torbjorn Granlund and Richard M. Stallman.

REPORTING BUGS

Report bugs to: <[email protected]>.
Report any translation bugs to: <https://translationproject.org/team/>.
GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
General help using GNU software: <https://www.gnu.org/gethelp/>

COPYRIGHT

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

Full documentation <https://www.gnu.org/software/coreutils/split>
or available locally via: info '(coreutils) split invocation'

History

--additional-suffix since Debian 8 (Jessie); --elide-empty-files since Debian 7 (Wheezy); --filter since Debian 7 (Wheezy); --hex-suffixes since Debian 10 (Buster); --number since Debian 7 (Wheezy); --numeric-suffixes since Debian 3.1 (Sarge); --separator since Debian 9 (Stretch); --suffix-length since Debian 3.1 (Sarge); --unbuffered since Debian 7 (Wheezy); --verbose since Debian 2.2 (Potato); -a since Debian 3.1 (Sarge); -d since Debian 3.1 (Sarge); -e since Debian 7 (Wheezy); -n since Debian 7 (Wheezy); -t since Debian 9 (Stretch); -u since Debian 7 (Wheezy); -x since Debian 10 (Buster).

-NUMBER until Debian 3.0 (Woody); -lines until Debian 2.1 (Slink).