Comando Linux · 5 min read · Sep 17, 2025
Tutorial del comando join de Linux para principiantes (5 ejemplos)
A veces, es posible que desees combinar dos archivos de una manera que la salida tenga aún más sentido. Por ejemplo, podría haber un archivo que contenga el nombre de los continentes y otro archivo que contenga los nombres de los países ubicados en estos continentes, y el requisito es combinar ambos archivos de tal manera que un continente y el país correspondiente aparezcan en la misma línea.
Ese es solo un ejemplo; podría haber cientos de tales casos de uso. Si estás en Linux y buscas una herramienta que te ayude en situaciones como estas, es posible que desees revisar join, que es una utilidad de línea de comandos. En este tutorial, discutiremos este comando utilizando algunos ejemplos fáciles de entender.
Ten en cuenta que todos los ejemplos mencionados en este artículo han sido probados en Ubuntu 16.04, y la versión del comando join que hemos utilizado es 8.25.
Comando join de Linux
El comando join te permite combinar líneas de dos archivos en un campo común.
join [OPCIÓN]... ARCHIVO1 ARCHIVO2Esto es lo que dice la página del manual sobre esta herramienta:
Para cada par de líneas de entrada con campos de unión idénticos, escribe una línea en la salida estándar. El campo de unión predeterminado es el primero, delimitado por espacios en blanco. Cuando ARCHIVO1 o ARCHIVO2 (no ambos) es -, lee la entrada estándar.Los siguientes ejemplos deberían darte una buena idea de cómo funciona el comando join.
1. ¿Cómo combinar líneas de archivos usando el comando join?
Entendamos el uso básico del comando join. Supongamos que hay dos archivos (archivo1 y archivo2) que contienen las siguientes líneas:
1. Asia:
2. África:
3. Europa:
4. América del Norte:y
1. India
2. Nigeria
3. Países Bajos
4. Estados UnidosAhora, puedes combinar estos dos archivos de la siguiente manera:
join archivo1 archivo2Aquí está la salida del comando anterior en nuestro caso:

2. ¿Cómo hacer que join imprima líneas no emparejadas?
Por defecto, el comando join solo imprime líneas emparejadas. Por ejemplo, incluso si archivo1 contiene un campo extra (línea número 5):
1. Asia:
2. África:
3. Europa:
4. América del Norte:
5. América del Sur:unir archivo1 y archivo2 no producirá ninguna salida diferente:

Eso es porque las líneas no emparejadas se omiten en la salida. Sin embargo, si lo deseas, aún puedes tenerlas en la salida utilizando la opción de línea de comandos -a. Esta opción requiere que pases un número de archivo para que la herramienta sepa de qué archivo estás hablando.
Por ejemplo, en nuestro caso, el comando sería:
join archivo1 archivo2 -a 1
Así que puedes ver que la línea no emparejada del número de archivo 1 (archivo1 en nuestro caso) también se mostró en la salida.
Ten en cuenta que en caso de que solo desees imprimir líneas no emparejadas (es decir, suprimir las líneas emparejadas en la salida), puedes hacer esto utilizando la opción de línea de comandos -v. Esta opción funciona exactamente de la misma manera que -a.
Aquí hay un ejemplo de la opción -v:

3. ¿Cómo proporcionar campos de unión personalizados?
Como ya sabemos, join combina líneas de archivos en un campo común, que es el primer campo por defecto. Sin embargo, si lo deseas, puedes especificar un campo diferente para cada archivo. Por ejemplo, considera los siguientes contenidos en archivo1 y archivo2, respectivamente.
* 1. Asia:
& 2. África:
@ 3. Europa:
# 4. América del Norte:# 1. India
@ 2. Nigeria
& 3. Países Bajos
* 4. Estados UnidosAhora, si deseas que el segundo campo de cada línea sea el campo común para la unión, puedes decírselo a la herramienta utilizando las opciones de línea de comandos -1 y -2. Mientras que la primera representa el primer archivo, la última se refiere al segundo archivo. Estas opciones requieren un argumento numérico que se refiere al campo de unión para el archivo correspondiente.
Por ejemplo, en nuestro caso, el comando será:
join -1 2 -2 2 archivo1 archivo2Y aquí está la salida de este comando:

Ten en cuenta que en caso de que la posición del campo común sea la misma en ambos archivos (como en el ejemplo que acabamos de discutir, donde es 2), puedes reemplazar la parte -1 [campo] -2 [campo] en el comando con -j [campo]. Así que en nuestro caso, el comando se convertiría en:
join -j2 archivo1 archivo2
4. ¿Cómo hacer que la operación join no distinga entre mayúsculas y minúsculas?
Por defecto, la operación del comando join es sensible a mayúsculas y minúsculas. Por ejemplo, considera los siguientes archivos:
archivo1
A. Asia:
B. África:
C. Europa:
D. América del Norte:archivo2
a. India
b. Nigeria
c. Países Bajos
d. Estados UnidosAhora, si intentas unir estos dos archivos, utilizando el campo común (primero) predeterminado, no sucederá nada. Eso es porque el caso de los elementos del campo en ambos archivos es diferente. Para hacer que join ignore este problema de caso, utiliza la opción de línea de comandos -i.
Aquí está el comando para nuestro caso:
join -i archivo1 archivo2Y la siguiente captura de pantalla muestra el comando en acción:

5. ¿Cómo hacer que join no verifique la entrada ordenada?
Por defecto, el comando join verifica si la entrada suministrada está ordenada o no, y reporta si no lo está. Por ejemplo, considera la siguiente salida cuando la información en archivo1 no estaba ordenada:

Ahora, en caso de que desees que este error/advertencia desaparezca, puedes hacerlo utilizando la opción –nocheck-order. Aquí está el mismo comando, pero con esta opción habilitada:

Así que puedes ver que el comando join no verificó la entrada ordenada esta vez.
Conclusión
Join puede no ser una herramienta muy fácil de entender, pero una vez que te acostumbras a ella, puede actuar como un gran ahorro de tiempo para ti en algunas situaciones. Hemos cubierto la mayoría de las opciones de línea de comandos aquí. Prueba estas, y una vez hecho, revisa la página del manual del comando para el resto.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.