The simplest way to merge multiple csv

Surely, many times had to combine combine multiple CSV files with same structures but different data and have resorted to simple but tedious ETL process such as multiple data inputs on Kettle or similars. We’ll leave here a very simple trick, with a simple command, we could merge as many CSV files as you want.

Copy in a folder all csv files as you want to merge. Go to console, with administrator role, go to folder. Then type

It will automatically create a file, merge_csv.csv,  as a result from the merge of many files included in our folder.

 

 

Sergio Martín
Más de seis años de experiencia gestionando equipos y proyectos de Business Intelligence para diferentes sectores, apasionado de todos los procesos técnicos relacionados con la gestión de la información, el tratamiento de datos y la automatización de procesos

** Microstrategy 9.4 | Pentaho 5 (ETL) | Oracle 11g **

19 comments

  1. Si combine múltiples CSV´s a través del cmd y me genero un CSV de 3.2 gb, ¿existirá algún programa que lo pueda leer y manipular sin problemas?

  2. Hola Martha,

    un fichero CSV de mas de 2gb siempre va a ser algo problemático de manipular con software de escritorio, Notepad, Notepad++ o programas del estilo van a tardar bastante en abrirte el fichero y en guardar los cambios o movimientos que hagas en él.

    Uno de los mejores en esto es Ultraedit [http://www.ultraedit.com], si buscas un poco por la red lo encontrarás sin problema, pruébalo a ver que tal resulta.

    En cualquier caso, yo te recomiendo importarlo en una base de datos SQL cualquiera (MySQL por ejemplo) para poder trabajar de manera óptima con el fichero.

    Saludos 😉

  3. Hola,

    ¿existe la posibilidad de que te ponga cada nuevo csv en una nueva columna o en una nueva hoja? Necesito los datos en paralelo y esta solución es la más cercana por ahora.

    Muchas gracias.

    Saludos

    1. Hola Enrique,

      directamente de esta manera no lo creo. Un fichero CSV no deja de ser un fichero plano y, como tal, no puede tener más que una “hoja” de excel. Si que se me ocurre que, a través de una macro de excel, pudieras conseguir volcar las diferentes columnas de n ficheros CSV en un mismo fichero Excel.

      He googleado un poco y, si dominas algo de python, puedes probar esto

      http://stackoverflow.com/questions/14530748/combine-columns-from-several-csv-files-into-a-single-file

      En el ejemplo combinan varios ficheros csv con columnas en un único fichero csv con las columnas “pegadas” de manera correlativa.

      Si das con ello, soy todo oídos ojos!

      Saludos 😉

  4. Para OX no funciona cp *.csv unir.csv, pero me diste le idea para usar cat *.csv >> unir.csv, funciona bien, gracias!

  5. Hola, buenas tardes, muy util la info. Se puede hacer lo mismo desde PYTHON ? Alguien lo ha probado? Saludos

  6. Me ayudo mucho el tip junte varios csv en un total de siete millones de registros con un peso de 2,07 GB ya que el spss no me ayudo la opción fusionar.

    Gracias

  7. Hola Sergio,
    ante todo gracias por compartir!!!
    el único fallo que le encuentro es que al fusionar 4 CSV en mi caso, añade las 4 lineas de “cabeceras” como si fuesen filas de datos cuando realmente no lo son.
    Se te ocurre alguna forma de evitar esa casuística?

    1. Gracias Toni. Si, es un error conocido del proceso. Lo que yo hago es abrir con Notepad++ / Excel y reemplazar toda la fila por nada y luego borrar los registros vacios. Es un poco rollo, pero es rápido de hacer.

      Si nos vamos a un proceso más complejo, podríamos hacer algo así en batch. Abres un notepad y pegas esto

      @echo off
      cd /d “c:\csv”
      set first=true
      setlocal enabledelayedexpansion
      (for %%x in (*.csv) do (
      if !first!==true (
      type “%%x”
      echo.
      set first=false
      ) ELSE (
      more +1 “%%x”
      )
      ))> c:\csv\file\fichero_csv_resultante.csv

      y lo guardas en proceso.bat, por ejemplo.

      En la carpeta C:\csv tienes los ficheros csv y en la carpeta C:\csv\file\ te genera el resultado (para no tener el mismo fichero como parte del bucle de ficheros a combinar).

      Te debería dejar la primera de las cabeceras, pero no el resto.

      Prueba y me dices 😉

Leave a Reply

Your email address will not be published. Required fields are marked *