1.11. Buscar, ordenar y asociar ficheros
1.11.6. «join»
El comando join
permite unir dos ficheros de texto en uno usando una columna como clave común. Por defecto, join
asume que el separador de campos es el espacio. El comando join
es parecido al comando paste
donde la columna común, y que se utiliza como referencia entre ambas tablas, no queda duplicada y no requiere que un elemento esté en los dos archivos. Por otra parte, lo que sí requiere join
es que ambos archivos estén ordenados por la columna que se quiere utilizar como clave. Imaginemos que tenemos los dos ficheros siguientes:
$ cat file1.txt
num id atributo 1 CDKL3 chr5 2 CLN8 chr8 5 SOCS2 chr4
$ cat file2.txt
num id atributo 1 AGRN + 3 CDKL3 + 5 CLN8 - 9 FCHO +
El comando join
nos permite unir estas dos tablas en una sola utilizando el campo num
(la primera columna de cada uno de los ficheros) como la clave de unión:
$ join file1.txt file2.txt
num id atributo id atributo 1 CDKL3 chr5 AGRN + 5 SOCS2 chr4 CLN8 -
Por defecto, join
asume que la clave de unión es la primera columna, pero esto se puede modificar:
$ join -1 2 -2 2 file1.txt file2.txt
id num atributo num atributo CDKL3 1 chr5 3 + CLN8 2 chr8 5 -