Skip to content

The split command

The split command in Linux is used to split a file into smaller files.

Examples

  1. Split a file into a smaller file using file name

split filename.txt

  1. Split a file named filename into segments of 200 lines beginning with prefix file

split -l 200 filename file

This will create files of the name fileaa, fileab, fileac, filead, etc. of 200 lines.

  1. Split a file named filename into segments of 40 bytes with prefix file

split -b 40 filename file

This will create files of the name fileaa, fileab, fileac, filead, etc. of 40 bytes.

  1. Split a file using –verbose to see the files being created.

split filename.txt --verbose

Syntax:

split [options] filename [prefix]

Additional Flags and their Functionalities

Short Flag Long Flag Description
-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 (powers of 1024) or KB,MB,… (powers of 1000).

CHUNKS may be: |CHUNKS |Description | |:—|:—| |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|


Last update: 2022-05-12
Back to top