Category

Linux Command


Usage

split [OPTION]... [INPUT [PREFIX]]


Manual

Output fixed-size pieces of FILE to PREFIXaa, PREFIXab, ...; default size is 1000 lines.

Options

  • FILE: Input file, if not specified, or specified as -, read the standard input.
  • PREFIX: Prefix for the split files. (default x)
  • -a, --suffix-length=N: use 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 lines per output file
  • -d: use numeric suffixes instead of alphabetic
  • --numeric-suffixes[=FROM]: the same as -x, but allow setting the start value (FROM)
  • -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 per output file
  • -n, --number=CHUNKS: generate CHUNKS output files. 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
  • -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\times1024$). Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000). Binary prefixes can be used, too: KiB=K, MiB=M, and so on.

Examples

Split a file into 4 equal parts

In the following example, the myfile.txt (FILE) will be divided into four equal parts (-n 4). The resulting split files will be named as output_aa, output_ab, output_ac, and output_ad, respectively (as we specified PREFIX as output_).

split -n 4 myfile.txt output_ 
Split a file into 4 "equal" parts without breaking individual lines

In the following example, the myfile.txt (FILE) will be divided into four roughly equal parts (-n l/4) and make sure lines will not be split into different files. The resulting split files will be named as output_aa, output_ab, output_ac, and output_ad, respectively (as we specified PREFIX as output_).

split -n l/4 myfile.txt output_

 


Share your experience or ask a question