How to merge .CSV-files in Mac OS X terminal

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

From now on, when you select a folder in the Finder, you can right-click and find it under Services:

New Terminal At Folder Service

We want 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 named en inside the folder /meta/csv:

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 go 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 (the folder en on my macbook) 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

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

What's next?

If you think this was useful to you, it might be for others also. Feel free to share: