2011-06-03 6 views
5

Escribo un script de shell para juntar datos.
Tengo 2 archivos con diferentes columnas.
Una de las columnas es la misma en ambos archivos.

Shell: juntar datos

Like : 
File 1: 
a 5 
c 7 
d 9 
b 5 

File 2: 
c 1 
d 8 
a 6 
b 3 

Por el momento mi guión poner los datos en un mismo archivo con

paste -d ' ' 'file1' 'file2' > "file3" 

me gustaría saber si es posible hacer coincidir las 2 columnas juntos y en orden como:

a 5 6 
b 5 3 
c 7 1 
d 9 8 

Gracias

Respuesta

0

Utilice sort para ordenar ambos archivos, y luego join para unir en el primer campo.

2
sort file1 > file1.tmp 
sort file2 > file2.tmp 

join -t " " -j 1 file1.tmp file2.tmp 

supone que el carácter y los números están separadas por un espacio

1

Usando process substitution puede ordenar los archivos y unirlos en un solo comando.

join -t " " -j 1 <(sort file1) <(sort file2)