2.5 KiB
		
	
	
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			2.5 KiB
		
	
	
	
	
		
			Executable File
		
	
	
	
	
The split command
The split command in Linux is used to split a file into smaller files.
Examples
- Split a file into a smaller file using file name
split filename.txt
- 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.
- 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.
- 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 |