Save yourself some time, and merge .csv files with one easy command in Terminal.
Let's say you have a bunch of .csv files in a folder. You want to merge them into one file. How to do that?
Cat is a UNIX program that lets you concatenate files, which is what we need. It's so simple that you don't need installable apps for it. For those who want the code first and the explanation later, here is the code:
cat *.csv >merged.csv
Translated, it says: 'take all files in this folder that end with '.csv', and put them in 'merged.csv' (effectively merging them).
It is important that this command is executed in the right directory. You don't want all existing .csv files in your entire computer to be altered this way, now do you? :) You can use the terminal to navigate to the folder (as described below), but you can also use a default Mac OS X service that functions in much the same way as its counterpart in Windows: 'open here in Terminal'. It works like this.
First, go to:
System Preferences > Keyboard > Shortcuts > Services and select
New terminal at Folder:
From now on, when you select a folder in the Finder, you can right-click and find it under
Here are some images that may help. I had a bunch of .csv files that contained exports of Google search engine results (made by the SEOmoz toolbar). The English results were all put in a folder named
en inside the folder
I also made sure that every single .csv only contained the data I needed. In my case, I needed to delete the first 7 rows that were included in every export:
Back to the terminal. I used
cd to go to that folder in my terminal (or use the 'New terminal at Folder' Service I described earlier):
You can see it below, i'm at
macbook en (the folder
en on my macbook) and my username is
monchito. I then executed the command:
merged.csv was successfully added to the folder:
A quick check shows that the newly created .csv file contains way more rows than the individual files, so it probably worked :p
Now I can merge a great number of .csv files into one file quickly, and move on with my analysis.
Not much really. But if you think this was useful to you, it might be for others also: