Utilice el comando Unix JOIN para fusionar dos archivos
Esto no funciona como esperaba, a pesar de toda la investigación. Debo estar perdiendo algo..
Archivo 1 ...
# cat file1.csv
1 123 JohnDoe
1 456 BobDylan
1 789 BillyJean
Archivo 2 ...
# cat file2.csv
111 123 DaddyDoe
222 456 DaddyDylan
666 777 Stranger
555 789 DaddyJean
444 888 Stranger
333 999 Stranger
I estoy tratando de unirse a ambos los segundos campos. Al realizar una combinación externa izquierda y sólo incluir campos desde el primer archivo, todo parece excelente.
# join -1 2 -2 2 -a 1 -o 1.2 1.3 file1.csv file2.csv
123 JohnDoe
456 BobDylan
789 BillyJean
But tan pronto como se incluyo un campo desde el segundo archivo, todo se va Wack.
# join -1 2 -2 2 -a 1 -o 1.2 1.3 2.3 file1.csv file2.csv
DaddyDoeoe
DaddyDylann
789 BillyJean DaddyJean
The última línea se ve perfecto! ¿Qué pasa con los demás? ¿Alguna idea? ¡Gracias por adelantado
EDIT: Aquí está mi intento con CSV reales.
# cat file1.csv
1,123,JohnDoe
1,456,BobDylan
1,789,BillyJean
# cat file2.csv
111,123,DaddyDoe
222,456,DaddyDylan
666,777,Stranger
555,789,DaddyJean
444,888,Stranger
333,999,Stranger
# join -t, -1 2 -2 2 -a 1 -o 1.2 1.3 2.3 file1.csv file2.csv
,DaddyDoeoe
,DaddyDylann
789,BillyJean,DaddyJean