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 (>)
Usaremos -t,
para especificar un separador de campo (,
)y mostrar cómo combinar dos archivos en el primer campo (predeterminado) delimitado por comas.
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.
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.
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
.
Debe estar conectado para enviar un comentario.