GNU/Linux >> Tutoriales Linux >  >> Linux

Comando "comm" en Linux con ejemplos

A menudo es útil comparar versiones de archivos de texto. Para los administradores de sistemas y desarrolladores de software, esto es especialmente importante. Un administrador del sistema puede, por ejemplo, necesitar comparar un archivo de configuración existente con una versión anterior para diagnosticar un problema del sistema. Del mismo modo, un programador necesita con frecuencia ver qué cambios se han realizado en los programas a lo largo del tiempo.

El comunicador La utilidad muestra una comparación línea por línea de dos archivos ordenados. La primera de las tres columnas que muestra enumera las líneas que se encuentran solo en el archivo 1, la segunda columna enumera las líneas que se encuentran solo en el archivo 2 y la tercera enumera las líneas comunes a ambos archivos. La sintaxis básica para el comando "comm" es:

# comm [options] file1 file2

Argumentos

Los argumentos file1 y file2 son nombres de ruta de los archivos que comm compara. El uso de un guión (-) en lugar de archivo1 o archivo2 hace que comm lea la entrada estándar en lugar de ese archivo.

Opciones

Puedes combinar las opciones. Sin opciones, comm produce una salida de tres columnas.

Opciones Función
-1 No muestra la columna 1 (no muestra las líneas que se encuentran solo en el archivo 1).
-2 No muestra la columna 2 (no muestra las líneas que se encuentran solo en el archivo 2).
-3 No muestra la columna 3 (no muestra las líneas que se encuentran en ambos archivos).
-i Comparación de líneas que no distingue entre mayúsculas y minúsculas.
– -verificar orden Verifique el orden de la entrada, incluso si todas las líneas de entrada son emparejables
– -nocheck-order Ignorar el orden de la entrada
– -output-delimiter=STR delimita columnas con delimitador "STR"
– -ayuda Muestra un menú de ayuda
– -versión Mostrar información de la versión del comando
Nota :Si los archivos no se han ordenado, la comunicación no funcionará correctamente. Las líneas de la segunda columna van precedidas de un TAB y las de la tercera columna van precedidas de dos TAB. El estado de salida indica si la comunicación se completó normalmente (0) o anormalmente (no 0).

Ejemplos del uso del comando "comm" en Linux

Ejemplo 1:Uso básico

Veamos un ejemplo básico del comando "comm" para comparar 2 archivos ordenados. Los archivos son como se muestra a continuación:

# cat file1
aa
bb
cc
dd
# cat file2
cc
xx
yy
zz

El comando com compara los archivos línea por línea y genera las líneas que son idénticas. Por ejemplo:

# comm file1 file2
aa
bb
		cc
dd
	xx
	yy
	zz

La salida de este comando se muestra en tres columnas:la columna 1 muestra las líneas solo en el archivo 1 (aa, bb, dd), la columna 2 muestra todas las líneas solo en el archivo 2 (xx, yy, zz) y la columna 3 muestra todas las líneas que son iguales entre las dos archivos (cc). Esta es una comparación mucho más detallada que con diff, y el resultado puede ser abrumador cuando todo lo que desea es buscar o verificar uno o dos cambios simples. Sin embargo, puede ser increíblemente útil cuando no está muy familiarizado con ninguno de los archivos y quiere ver cómo se comparan.

Ejemplo 2:Suprimir las columnas

comm admite opciones en la forma -n donde n es 1, 2 o 3. Cuando se usan, estas opciones especifican qué columna(s) suprimir. Por ejemplo, si quisiéramos generar solo las líneas compartidas por ambos archivos, suprimiríamos la salida de las columnas 1 y 2:

# comm -12 file1 file2
cc

De manera similar, solo puede mostrar las líneas que solo están presentes en el archivo 1 y el archivo 2 respectivamente usando los comandos a continuación.

# comm -23 file1 file2
aa
bb
dd
# comm -13 file1 file2
xx
yy
zz

Ejemplo 3:Comprobación de clasificación en la entrada

El comando comm proporciona 2 opciones para verificar las entradas ordenadas:
1. –comprobar orden
2. –nocheck-order

El orden de verificación La opción verifica que la entrada esté ordenada correctamente antes de comparar. Si la entrada no está ordenada, obtendrá un error como se muestra a continuación:

# comm --check-order file1 file2
aa
bb
cc
dd
	xx
comm: file 2 is not in sorted order

Mientras que –nocheck-order La opción permite la comparación de archivos incluso si la entrada no está en el formato ordenado. Por ejemplo:

# cat file1
aa
bb
cc
dd
# cat file2
xx
cc
yy
zz
# comm --nocheck-order file1 file2
aa
bb
		cc
dd
	xx
	yy
	zz

Ejemplo 4:salida delimitada

comm también proporciona una opción para delimitar la salida utilizando el delimitador proporcionado por el usuario. Por ejemplo, en lugar de la salida predeterminada delimitada por "tabuladores", podemos usar un delimitador como "|" (tubería) como se muestra en el siguiente ejemplo:

# comm --output-delimiter="|" file1 file2
aa
bb
||cc
dd
|xx
|yy
|zz

comm V/s diff

comunicación es similar a diff en que ambos comandos comparan dos archivos. Pero comm también se puede usar como uniq; comm selecciona líneas duplicadas o únicas entre dos archivos ordenados, mientras que uniq selecciona líneas duplicadas o únicas dentro del mismo archivo ordenado.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando de clasificación de Linux con ejemplos

  3. Comando Linux Tee con ejemplos

  4. Comando de cabeza de Linux con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando de espera en Linux con ejemplos

Comando de exportación de Linux con ejemplos

Comando IP de Linux con ejemplos

Comando Linux comm con ejemplos