split

v0.0.28
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.