Así que tienen dos archivos .csv, donde la primera línea en el archivo 1 es:Combinar 2 csv por columna común
MPID,Title,Description,Model,Category ID,Category Description,Subcategory ID,Subcategory Description,Manufacturer ID,Manufacturer Description,URL,Manufacturer (Brand) URL,Image URL,AR Price,Price,Ship Price,Stock,Condition
La primera línea del archivo de 2:
Regular Price,Sale Price,Manufacturer Name,Model Number,Retailer Category,Buy URL,Product Name,Availability,Shipping Cost,Condition,MPID,Image URL,UPC,Description
y luego el resto de cada archivo está lleno de información.
Como puede ver, ambos archivos tienen un campo común llamado MPID (archivo 1: col 1, archivo 2: col 9, donde el primer col es col 1).
Me gustaría crear un nuevo archivo que combine estos dos archivos mirando esta columna (como en: si hay un MPID que está en ambos archivos, entonces en el nuevo archivo aparecerá este MPID con su fila desde el archivo 1 y su fila desde el archivo 2). SI un MPID aparece solo en un archivo, también debe ir a este archivo combinado.
Los archivos no están ordenados de ninguna manera.
¿Cómo hago esto en una máquina Debian con un script de shell o python?
Gracias.
EDITAR: Ambos archivos no tienen comas que no sean los que separan los campos.
join funciona grandes; pero los archivos de entrada deben ordenarse en la clave. tampoco puede leer archivos csv arbitrarios. específicamente, una coma dentro de un campo citado cambiaría todos los campos para ese registro – Javier
@Javier: estuvo de acuerdo, razón por la cual actualicé mi respuesta para decir tanto, incluso sin ver su comentario (que probablemente estaba en preparación al mismo tiempo que estaba edición). –