joinEs un comando en sistemas operativos Unix y similares que combina las líneas de dos archivos de texto ordenados según la presencia de un campo común . Es similar al operador de unión utilizado en bases de datos relacionales, pero opera sobre archivos de texto.
Descripción general
El joincomando toma como entrada dos archivos de texto y varias opciones. Si no se proporciona ningún argumento de línea de comandos , este comando busca un par de líneas en los dos archivos que tengan el mismo primer campo (una secuencia de caracteres distintos del espacio) y genera una línea compuesta por el primer campo seguido del resto de las dos líneas.
Los argumentos del programa especifican qué carácter se utilizará en lugar del espacio para separar los campos de la línea, qué campo se utilizará para buscar líneas coincidentes y si se deben mostrar las líneas que no coincidan. La salida se puede guardar en otro archivo en lugar de imprimirse mediante redirección .
A modo de ejemplo, los dos archivos siguientes enumeran los padres y madres conocidos de algunas personas. Ambos archivos se han ordenado según el campo de unión, requisito del programa.
George Jim Kumar Gunaware
Alberto Martha George Sophie
La unión de estos dos archivos (sin argumentos) produciría:
George Jim Sophie
De hecho, solo "george" es común como primera palabra en ambos archivos.
Ejemplos
Para encontrar ternas pitagóricas de la forma (k, k+1, n) .
$ join < ( for i in { 1 ..9999 } ; do printf -- '%010d\t%s\t%s\t%s\n' " $(( 2 * i *( i + 1 )+ 1 )) " " $i " " $(( i + 1 )) " ; done ) < ( for i in { 1 ..9999 } ; do printf -- '%010d\t%s\n' " $(( i ** 2 )) " " $i " ; done ) 0000000025 3 4 5 0000000841 20 21 29 0000028561 119 120 169 0000970225 696 697 985 0032959081 4059 4060 5741Historia
joinEstá concebido como un operador de base de datos relacional. Forma parte de la Guía de Portabilidad X/Open desde la edición 2 de 1987. Se heredó en la primera versión de POSIX.1 y en la Especificación Única de Unix . [ 1 ] [ 2 ]
La versión joinincluida en GNU coreutils fue escrita por Mike Haertel. [ 3 ] El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos nativos Win32 de utilidades comunes de tipo GNU Unix. [ 4 ]
Véase también
Referencias
- ↑ – Shell and Utilities Reference, The Single UNIX Specification , Versión 5 de The Open Group
- ↑ – Manual de comandos generales de FreeBSD
- ↑ – Manual de comandos generales de Linux de ManKier.com
- ↑ "Adaptaciones nativas de Win32 de algunas utilidades GNU" . unxutils.sourceforge.net . Archivado del original el 9 de febrero de 2006. Consultado el 3 de febrero de 2026 .
Enlaces externos
- – Manual del programador de Plan 9 , Volumen 1
- – Manual de comandos de usuario de Linux
- comando de unión
- utilidades de procesamiento de texto de Unix
- Utilidades Unix SUS2008
- Órdenes del Plan 9