Inicio > Procesamiento y búsqueda de texto > join

join: Fusionar campos comunes de dos archivos

El comando join fusiona líneas de dos archivos de texto ordenados basándose en un campo común especificado, enviando el resultado a la salida estándar. Funciona de manera similar a la operación JOIN de las bases de datos, combinando líneas correspondientes de cada archivo para crear nuevas líneas.

Resumen

join compara campos específicos de dos archivos y combina las líneas coincidentes. Este comando funciona correctamente solo si los archivos de entrada están ordenados según el campo común. Usarlo con archivos no ordenados puede producir resultados inesperados.

Características principales

  • Fusión basada en campos comunes de dos archivos
  • Se requiere ordenación de archivos de entrada
  • Control del formato de salida con varias opciones
  • Útil para la integración de datos y la generación de informes

Opciones principales

El comando join permite un control detallado sobre los criterios de fusión, el formato de salida y el manejo de líneas no coincidentes a través de varias opciones.

Especificación de campos y delimitadores

Control de salida

Comando generado:

Combina los comandos.

Descripción:

`join` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Aprenda a fusionar datos de dos archivos de manera efectiva a través de varios ejemplos de uso del comando join.

Fusión básica

echo "1 apple\n2 banana" > file1.txt && echo "1 red\n2 yellow" > file2.txt && join file1.txt file2.txt

Fusiona basándose en el primer campo de ambos archivos. (Crear archivos y luego ejecutar)

Fusión de campo específico

echo "apple 1\nbanana 2" > file3.txt && echo "red 1\nyellow 2" > file4.txt && join -j 2 file3.txt file4.txt

Fusiona basándose en el segundo campo de ambos archivos. (Crear archivos y luego ejecutar)

Uso de delimitador de tabulación

echo -e "id\tname\n1\tAlice\n2\tBob" > users.tsv && echo -e "id\tcity\n1\tSeoul\n3\tParis" > cities.tsv && join -t $'\t' users.tsv cities.tsv

Fusiona archivos delimitados por tabulación. (Crear archivos y luego ejecutar)

Incluir líneas no coincidentes

echo "1 apple\n2 banana\n3 orange" > file5.txt && echo "1 red\n2 yellow" > file6.txt && join -a 1 file5.txt file6.txt

Incluye en la salida las líneas que solo existen en el primer archivo (file5.txt). (Crear archivos y luego ejecutar)

Mostrar solo campos específicos

echo "1 apple\n2 banana" > file7.txt && echo "1 red\n2 yellow" > file8.txt && join -o 1.1,1.2,2.2 file7.txt file8.txt

Muestra solo el primer y segundo campo del primer archivo y el segundo campo del segundo archivo. (Crear archivos y luego ejecutar)

Consejos y precauciones

Consejos útiles y puntos a tener en cuenta al usar el comando join.

Consejos importantes

  • **Ordenación de archivos de entrada**: El comando join solo funciona correctamente si los archivos de entrada están ordenados según el campo de unión. Es esencial ordenarlos previamente usando el comando `sort`. Ej: `sort file1.txt > sorted_file1.txt`
  • **Delimitador de campos**: El delimitador predeterminado es el espacio (espacio en blanco, tabulación). Si usa un delimitador diferente, use la opción `-t`. Por ejemplo, para archivos CSV, use `-t ','`.
  • **Control del formato de salida**: Puede controlar con precisión el orden y la inclusión de los campos que se mostrarán utilizando la opción `-o`. Se especifica en el formato `NUMERO_ARCHIVO.NUMERO_CAMPO` (ej: `1.2` es el segundo campo del primer archivo).
  • **Manejo de líneas no coincidentes**: Puede incluir líneas no coincidentes en la salida o mostrar solo las líneas no coincidentes utilizando las opciones `-a` o `-v`.

Comandos de la misma categoría