El shell de linux: Comando join | Algo de Linux

miércoles, 27 de febrero de 2008

El shell de linux: Comando join

Un comando que nos puede resultar bastante util para mezclar información obtenida de dos ficheros relacionados es el comando join.

join se utiliza para crear un archivo mezclando otros dos que tienen un campo clave con información común. Por defecto, no tenemos que indicar ese primer campo común, pero podemos indicar otro campo distinto.
Para poder mezclar la información de ambos ficheros, los campos deben estar separados por un caracter, que por defecto es el espacio o tabulador.

Ejemplo:
join fichero1 fichero2
Los espacios iniciales se ignoran.

Si deseamos especificar un separador de campo específico, lo hacemos con el parámetro -t. Veamos un ejemplo en el que utilizamos como separador de campos los dos puntos:
join -t":" profesores.txt grupos.txt
Pero imaginemos que el campo por el que queremos mezclar los ficheros no es el primero en ambos archivos. Pues bien, podemos indicar el número de campo por el que queremos hacer la mezcla en cualquiera de los archivos:
join -t":" -2 2 profesores.txt grupos.txt
En el ejemplo anterior estamos indicando que la mezcla se debe realizar tomando el primer campo del primer fichero con el segundo campo del segundo fichero.

También podríamos indicar los campos de cada fichero por los que se debe mezclar:
join -t":" -1 2 -2 2 profesores.txt grupos.txt
En este caso, mezclamos tomando como referencia el segundo campo del primer fichero con el segundo campo del segundo fichero.

Un detalle importante a destacar: Los ficheros deben estar ordenados por el campo que se van a mezclar.

No hay comentarios: