texto separador script numero lineas leer fichero extraer con comando columnas campos cadena buscar bash paste multiple-columns

separador - Cómo pegar columnas de archivos separados usando bash?



comando awk (3)

Estabas en camino con paste(1) :

$ paste -d , date1.csv date2.csv Bob,2013-06-03T17:18:07,2012-12-02T18:30:31 James,2013-06-03T17:18:07,2012-12-02T18:28:37 Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05

No está claro por su pregunta si hay espacios principales en esas líneas. Si desea deshacerse de eso en la salida final, puede usar cut(1) para cut(1) antes de pegar:

$ cut -c 2- date2.csv | paste -d , date1.csv - Bob,2013-06-03T17:18:07,2012-12-02T18:30:31 James,2013-06-03T17:18:07,2012-12-02T18:28:37 Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05

Usando los siguientes datos:

$cat date1.csv Bob,2013-06-03T17:18:07 James,2013-06-03T17:18:07 Kevin,2013-06-03T17:18:07 $cat date2.csv 2012-12-02T18:30:31 2012-12-02T18:28:37 2013-06-01T12:16:05

¿Cómo se pueden fusionar los archivos date1.csv y date2.csv? Salida deseada:

$cat merge-date1-date2.csv Bob,2013-06-03T17:18:07,2012-12-02T18:30:31 James,2013-06-03T17:18:07,2012-12-02T18:28:37 Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05

Tenga en cuenta que la mejor solución será capaz de administrar rápidamente una gran cantidad de líneas.


Otra forma de hacerlo es con pr

pr -mts, file1 file2

Prueba:

[jaypal:~/Temp] cat file1 Bob,2013-06-03T17:18:07 James,2013-06-03T17:18:07 Kevin,2013-06-03T17:18:07 [jaypal:~/Temp] cat file2 2012-12-02T18:30:31 2012-12-02T18:28:37 2013-06-01T12:16:05 [jaypal:~/Temp] pr -mts, file1 file2 Bob,2013-06-03T17:18:07,2012-12-02T18:30:31 James,2013-06-03T17:18:07,2012-12-02T18:28:37 Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05


Quería extender la solución de jaypal ya que me encontré con la necesidad de editar archivos antes de fusionar las columnas.

$cat date1.csv Bob,2013-06-03T17:18:07 James,2013-06-03T17:18:07 Kevin,2013-06-03T17:18:07 $cat date2.csv 2012-12-02T18:30:31 2012-12-02T18:28:37 2013-06-01T12:16:05

La fusión de la columna 1 de date1.csv con la columna 1 de date2.csv se puede realizar de la siguiente manera:

$pr -mts, <(cut -d, -f1 date1.csv) date2.csv Bob,2012-12-02T18:30:31 James,2012-12-02T18:28:37 Kevin,2013-06-01T12:16:05

Puede aplicar más ediciones con un tubo si lo desea:

$pr -mts, <(cut -d, -f1 date1.csv | sort) date2.csv

De todos modos, esto ha sido útil para mí y solo quería transmitir el conocimiento. Espero que ayude a alguien.