Linux split command
On Unix-like operating systems, the split command splits a file into pieces.
This page covers the GNU/Linux version of split.
Description
split outputs fixed-size pieces of input INPUT to files named PREFIXaa, PREFIXab, ...
The default size for each split file is 1000 lines, and default PREFIX is "x". With no INPUT, or when INPUT is a dash ("-"), read from standard input.
Syntax
split [OPTION]... [INPUT [PREFIX]]
Options
-a N, --suffix-length=N | Use suffixes of length N (default 2) |
-b SIZE, --bytes=SIZE | Write SIZE bytes per output file. |
-C SIZE, --line-bytes=SIZE | Write at most SIZE bytes of lines per output file. |
-d, --numeric-suffixes | Use numeric suffixes instead of alphabetic. |
-e, --elide-empty-files | Do not generate empty output files with "-n" |
--filter=COMMAND | Write to shell command COMMAND; file name is $FILE |
-l NUMBER, --lines=NUMBER | Put NUMBER lines per output file. |
-n CHUNKS, --number=CHUNKS | Generate CHUNKS output files. (See below.) |
-u, --unbuffered | Immediately copy input to output with "-n r/...". |
--verbose | Print a verbose diagnostic before each output file is opened. |
--help | Display a help message and exit. |
--version | Output version information and exit. |
SIZE may be one of the following, or an integer optionally followed by one of following multipliers:
suffix | multiplier |
---|---|
KB | 1000 |
K | 1024 |
MB | 1000 x 1000 |
M | 1024 x 1024 |
...and so on for G (gigabytes), T (terabytes), P (petabytes), E (exabytes), Z (zettabytes), Y (yottabytes).
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
- l/K/N: output Kth of N to standard output without splitting lines
- r/N: like "l" but use round robin distribution r/K/N likewise but only output Kth of N to standard output
Examples
split -b 22 newfile.txt new
Split the file newfile.txt into three separate files called newaa, newab and newac..., with each file containing 22 bytes of data.
split -l 300 file.txt new
Split the file newfile.txt into files beginning with the name new, each containing 300 lines of text.
Related commands
csplit — Split files based on a defined context.