Adentrandonos en join

Usando join

Cualquier persona familiarizada en la escritura de búsquedas de base de datos reconoce la utilidad del comando join . Al igual que la mayoría de los comando UNIX, el resultado se muestra en stdout. Para “combinar” archivos, se comparan los campos especificados de dos archivos línea por línea. Si hay campos especificados, join busca concordancias en los campos desde el comienzo de cada línea. El separador de campos predeterminado es el espacio blanco (en algunos sistemas es simplemente un espacio o espacios adyacentes). Cuando se produce una concordancia de campos, se escribe una línea de resultados por cada par de líneas con los campos concordantes. Para obtener resultados legítimos, los dos archivos tienen que estar ordenados por campos para que puedan concordar. No todos los sistemas implementan join de la misma forma.

Este ejemplo utiliza -t para especificar un separador de campo y muestra cómo combinar dos archivos en el primer campo (predeterminado) delimitado por comas. Los operadores de base de datos deberían reconocerlo como una combinación interna que muestra sólo las filas concordantes.

Ejemplo de join – usando delimitador de campo no predeterminado:

Vamos a crear tres archivos de ejemplo: archivo1.txt archivo2.txt archivo3.txt

Para ello usaremos las redirecciones de entrada (<<) y salida  (>)

ejemplo_join2

Usaremos -t, para especificar un separador de campo (,)y mostrar cómo combinar dos archivos en el primer campo (predeterminado) delimitado por comas.

ejemplo_join3

Para especificar campos para “combinar” en cada archivo se puede usar la bandera de opción -j[1,2] x (ó simplemente, -1 x ó -2 x). La bandera de opción -j1 2 ó -1 2 especifica el segundo campo del archivo uno, el primer archivo presentado en el comando. Este ejemplo muestra cómo combinar los archivos basados en el campo 1 en el primer archivo y el campo 2 en el segundo archivo, y también una combinación interna para concordar únicamente con las filas.

ejemplo_join4

Continuando con la idea de hacer ejemplos relativos a bases de datos, las banderas pueden utilizarse para producir una combinación externa de tabla izquierda. Left outer join incluye todas las filas del primer archivo o tabla izquierda y las filas que concuerdan en el segundo archivo o tabla. Use -a para incluir todas las filas del archivo especificado.

ejemplo_join5

Full outer joins incluye todas las filas de ambos archivos o tablas, sin importar si los campos concuerdan. Se puede realizar una combinación externa completa especificando ambos archivos con la bandera de opción -a.

ejemplo_join6

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.