split
split [OPTION]... [INPUT [PREFIX]]
Create output files containing consecutive or interleaved sections of input
Options
--bytes=<SIZE>
,-b <SIZE>
-
put SIZE bytes per output file
--line-bytes=<SIZE>
,-C <SIZE>
-
put at most SIZE bytes of lines per output file
--lines=<NUMBER>
,-l <NUMBER>
-
put NUMBER lines/records per output file
--number=<CHUNKS>
,-n <CHUNKS>
-
generate CHUNKS output files; see explanation below
--additional-suffix=<SUFFIX>
-
additional SUFFIX to append to output file names
--filter=<COMMAND>
-
write to shell COMMAND; file name is $FILE (Currently not implemented for Windows)
--elide-empty-files
,-e
-
do not generate empty output files with '-n'
-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
--suffix-length=<N>
,-a <N>
-
generate suffixes of length N (default 2)
--verbose
-
print a diagnostic just before each output file is opened
--separator=<SEP>
,-t <SEP>
-
use SEP instead of newline as the record separator; '\0' (zero) specifies the NUL character
--io-blksize
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default size is 1000, and default PREFIX is 'x'. With no INPUT, or when INPUT is -, read standard input.
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 stdout
- l/N split into N files without splitting lines/records
- l/K/N output Kth of N to stdout without splitting lines/records
- r/N like 'l' but use round robin distribution
- r/K/N likewise but only output Kth of N to stdout
Examples
Split a file, each split having 10 lines (except the last split):
split -l 10 {{path/to/file}}
Split a file into 5 files. File is split such that each split has same size (except the last split):
split -n 5 {{path/to/file}}
Split a file with 512 bytes in each split (except the last split; use 512k for kilobytes and 512m for megabytes):
split -b 512 {{path/to/file}}
Split a file with at most 512 bytes in each split without breaking lines:
split -C 512 {{path/to/file}}
The examples are provided by the tldr-pages project under the CC BY 4.0 License.
Please note that, as uutils is a work in progress, some examples might fail.