How to split large CSV files in Mac OS X Terminal, the easy way. And add an extension to them also, so Mac OS X knows how to handle them.
How to split a large text file into parts of your choosing:
Let's say I have one .csv-file that I want to split into multiple files that contain a maximum of 200 lines. I can use the following command:
split -l 200 split_me
split_me.csv is the filename of the CSV file you wish to split into chunks of 200 lines. The split function itself is smart enough to give the new files a name, so no need to worry about that.
For many cases this alone is enough. But if you want some additional options, read on.
Let's make it more interesting:
For that, we need to alter the split command a little bit.
First we used the
-l flag, which separated the files by a number of lines. Now we're going to use the
-b flag, which separates by size (bytes). Splitting it in files of 1MB is easy, just use
And additionally, we'll use a little loop and the
mv-command to change the extensions.
First: split into chunks of 1mb each:
split -b 1m split_me.csv
And next, add the
.csv extension to all of them:
for i in *; do mv "$i" "$i.csv"; done
Et voila! We can see the result:
You should know this, but just to make sure.
If you think this was useful to you, it might be for others also. Feel free to share: