Esto no funciona como espero, a pesar de todas las investigaciones. Debo estar perdiendo algo ...Utilice el comando UNIX JOIN para unir dos archivos
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
Estoy tratando de unirse a ambos los segundos campos. Cuando realizo una combinación externa izquierda y solo incluyo los campos del primer archivo, todo parece dandy.
# join -1 2 -2 2 -a 1 -o 1.2 1.3 file1.csv file2.csv
123 JohnDoe
456 BobDylan
789 BillyJean
Pero tan pronto como incluyo un campo del segundo archivo, todo se vuelve loco.
# join -1 2 -2 2 -a 1 -o 1.2 1.3 2.3 file1.csv file2.csv
DaddyDoeoe
DaddyDylann
789 BillyJean DaddyJean
¡La última línea parece perfecta! ¿Qué pasa con los demás? ¿Alguna idea? ¡Gracias por adelantado!
EDITAR: Aquí está mi intento con los 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
qué versión del sistema operativo está utilizando? ¿Y las columnas están realmente delimitadas con ',' s, según la extensión del archivo? – shellter
-o opción debe ser comillas, o puede usar delimitado por comas en lugar de espacio en blanco. No estoy seguro de si ese es el problema, pero parece ser un problema parcial, – Suroot
@shellter Unix 3.5. Son archivos delimitados por tabuladores. Saqué las comas cuando intentaba solucionar el problema. @Suroot Di un tiro, pero no pareció cambiar nada. – Nate