Ahora, cada vez más personas usan el sistema Linux , hoy presentaré el comando de unión a todos. |
1. Introducción al comando
Los dos archivos se empalman horizontalmente mediante productos cartesianos de acuerdo con los mismos campos especificados y se envían a la salida estándar. De forma predeterminada, el separador del campo de combinación es un espacio o tabulación. Al unirse, los dos archivos deben ordenarse de acuerdo con un campo determinado.
El producto cartesiano se refiere al conjunto de pares ordenados formados por la combinación de los miembros de dos conjuntos X e Y. Por ejemplo, el conjunto X = {a, b}, Y = {0,1,2}, luego
X × Y = {(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)} Y × X = {(0, a ), (0, b), (1, a), (1, b), (2, a), (2, b)}
2. Formato de comando
unirse [OPCIONES] ARCHIVO1 ARCHIVO2
Cuando ARCHIVO1 o ARCHIVO2 es un guión- (los dos no pueden ser al mismo tiempo), entonces el contenido se lee desde la entrada estándar.
3. Descripción de la opción
-a FILENUM Además de mostrar el contenido de salida original, también muestra líneas que no tienen el mismo campo en el archivo. El valor de FILENUM es 1 o 2, que corresponde a ARCHIVO1 y ARCHIVO2 respectivamente. -E VACÍO Si la columna especificada no se puede encontrar en ARCHIVO1 y ARCHIVO2, la cadena en la opción -i, --igore-case contenido de la columna de comparación se completa en la salida Ignore el caso cuando -j CAMPO es equivalente a -1 CAMPO -2 CAMPO -o FORMATO muestra el resultado en el formato especificado -t CHAR especifica el carácter separador para las columnas de entrada y salida -v FILENUM es similar a -a FILENUM, pero solo muestra Filas que no tienen la misma columna en el archivo - 1 CAMPO está conectado a la columna especificada por ARCHIVO1. FIELD toma 1 para la primera columna, 2 para la segunda columna, etc. -2 FIELD está conectado a la columna especificada por FILE2. FIELD toma 1 para la primera columna, 2 para la segunda columna, y así sucesivamente. - opción predeterminada de orden de verificación, verifica si el archivo ha sido ordenado --nocheck-order no verifica si el archivo está ordenado --help display la información de ayuda y termina --version visualización de información de la versión y sale
4. Ejemplos comunes
(1) Para conectar dos archivos, la primera columna se utiliza como campo de conexión de forma predeterminada.
# file1 El contenido es el siguiente lvlv dablelv 25 zhangsan San 12 # file2 El contenido es el siguiente lvlv english 15 lvlv math 75 zhangsan math 14 zhouxun english 45 join file1 file2 lvlv dablelv 25 english 15 lvlv dablelv 25 math 75 zhangsan San 12 math 14
(2) Tomando los dos archivos anteriores como ejemplo, la pantalla indica que la conexión debe realizarse de acuerdo con el nombre chino en la primera columna.
unirse -j 1 archivo1 archivo2 # 或 unirse -1 1-2 1 archivo1 archivo2
(3) Si desea mostrar filas que no tienen el mismo campo, use -a1 o -a2 para especificar las filas del primer o segundo archivo que se mostrarán.
join -a2 file1 file2 lvlv dablelv 25 english 15 lvlv dablelv 25 math 75 zhangsan San 12 math 14 zhouxun english 45 // muestra la línea no coincidente en file2