In Unix, how can I split large files into a number of smaller files?
To split large files into smaller files in Unix, use the
split command. At the Unix prompt, enter:
Replace filename with the name of the large file you wish
to split. Replace prefix with the name you wish to give
the small output files. You can exclude [options], or
replace it with either of the following:
If you use the -l (a lowercase L) option,
replace linenumber with the number of lines you'd like in
each of the smaller files (the default is 1,000). If you use the
-b option, replace bytes with
the number of bytes you'd like in each of the smaller files.
The split command will give each output file it creates
the name prefix with an extension tacked to the end that
indicates its order. By default, the split command adds
aa to the first output file, proceeding through the
alphabet to zz for subsequent files. If you do not
specify a prefix, most systems use x .
Examples
- In this simple example, assume
myfileis 3,000 lines long: split myfileThis will output three 1000-line files:
xaa,xab, andxac. - Working on the same file, this next example is more complex:
split -l 500 myfile segment
This will output six 500-line files:
segmentaa,segmentab,segmentac,segmentad,segmentae, andsegmentaf. - Finally, assume
myfileis a 160KB file: split -b 40k myfile segmentThis will output four 40KB files:
segmentaa,segmentab,segmentac, andsegmentad.
For more information, consult the man page
for the split command. At the Unix prompt, enter:
You may also wish to investigate the csplit command, which splits
files based on context. For more information, see the man page for
the csplit command. At the Unix prompt, enter:
At Indiana University, for personal or departmental Linux or Unix systems support, see At IU, how do I get support for Linux or Unix?
Last modified on August 22, 2008.







