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?

Easy: use 'cat'

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

That's it.

Translated, it says: 'take all files in this folder that end with '.csv', and put them in 'merged.csv' (effectively merging them).

Bonus tip: the 'open here in Terminal' service in Mac OS X 10.7+

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'
New Terminal At Folder

Now, when you select a folder in the Finder, you can find it under 'Services':

New Terminal At Folder Service

More images

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 called 'en':

Multiple Csv Files

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:

Csv First Rows Junk

Back to the terminal. I used 'cd' to move to that folder in my terminal (or use the 'New terminal at Folder' Service I described earlier):

cd /Users/monchito/Desktop/meta/csv/en/

You can see it below, i'm at 'macbook en' and my username is 'monchito'. I then executed the command:

Terminal Command Cat

The file 'merged.csv' was successfully added to the folder:

New File Merged

A quick check shows that the newly created .csv file contains way more rows than the individual files, so it probably worked :p

Check Worked

Now I can merge a great number of .csv files into one file quickly, and move on with my analysis.