GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de comando Linux cmp para principiantes (7 ejemplos)

Más o menos independientemente de su función, si su trabajo habitual implica hacer cosas en la línea de comandos en Linux, es posible que se encuentre en una situación en la que desee comparar dos archivos mediante una utilidad de línea de comandos. Hay varias herramientas de línea de comandos que le permiten hacer esto, y una de ellas es 'cmp ' comando.

En este tutorial, discutiremos 'cmp' a través de ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos e instrucciones mencionados en este tutorial han sido probados en Ubuntu 16.04LTS.

comando cmp

El comando 'cmp' le permite realizar una comparación byte a byte de dos archivos. La utilidad proporciona varias funciones en forma de opciones de línea de comandos. En este tutorial, discutiremos algunas de las opciones clave que le darán a usted (un principiante) una buena idea sobre cómo funciona la herramienta.

1. Cómo comparar dos archivos usando cmp

En su forma más simple, puede usar 'cmp' de la siguiente manera:

cmp [file1-name] [file2-name]

Como ya se mencionó, la herramienta compara dos archivos byte por byte. Cuando se encuentra una diferencia, la herramienta se detiene y produce una salida que indica en qué línea y byte se encuentra la diferencia.

Por ejemplo:

cmp file1.txt file2.txt

Como puede ver en la captura de pantalla anterior, el resultado dice claramente que los archivos difieren en el byte 20 en la línea 1.

2. Cómo hacer que cmp imprima bytes diferentes

Si lo desea, también puede hacer que 'cmp' muestre los bytes diferentes en su salida. Esto se puede hacer usando -b opción de línea de comando.

cmp -b [file1] [file2]

Por ejemplo:

cmp -b file1.txt  file2.txt

En este caso, como puede ver en la captura de pantalla anterior, la diferencia está en el byte 17, que es 'l' en file1.txt e 'i' en file2.txt. Los valores 154 y 151 son los valores para estos bytes, respectivamente.

3. Cómo hacer que cmp omita algunos bytes iniciales de ambos archivos

Si lo desea, también puede hacer que 'cmp' salte un número determinado de bytes iniciales de ambos archivos y luego compararlos. Esto se puede hacer especificando el número de bytes como argumento para -i opción de línea de comando.

cmp -i [bytes a omitir] [archivo1] [archivo2]

Por ejemplo:

cmp -i 10 archivo1.txt  archivo2.txt

Tenga en cuenta que en casos como estos (donde usa -i para omitir bytes), el byte en el que comienza la comparación se trata como el número de byte cero.

Continuando, la herramienta también le permite omitir diferentes números de bytes de ambos archivos. Esto se puede hacer de la siguiente manera:

cmp -i [bytes-to-skip-from-first-file] : [bytes-to-skip-from-second-file] [file1] [file2]

Por ejemplo:

cmp -i 4:7 file1.txt file2.txt

4. Cómo hacer que cmp muestre la posición del byte (y el valor) para todos los bytes diferentes

Si lo desea, también puede hacer que el comando 'cmp' imprima la posición del byte y el valor del byte para todos los bytes diferentes. Se puede acceder a esta característica usando -l opción de línea de comando.

cmp -l [file1] [file2]

Por ejemplo:

cmp -l file1.txt  file2.txt

La primera columna en la salida (ejemplo mostrado arriba) representa la posición (número de byte) de diferentes bytes. La segunda columna representa el valor de byte del byte diferente en el primer archivo, mientras que la tercera columna representa el valor de byte del byte diferente en el segundo archivo.

5. Cómo limitar el número de bytes a comparar

La herramienta también le permite limitar la cantidad de bytes que desea comparar; es posible que desee comparar un máximo de 25 o 50 bytes. Esto se puede hacer usando -n opción de línea de comando.

$ cmp -n [número-de-bytes-a-comparar]  [archivo1] [archivo2]

Por ejemplo:

$ cmp -n 25  archivo1.txt  archivo2.txt

6. Cómo mostrar el medidor de progreso al usar el comando cmp

Al comparar archivos grandes (o incluso particiones) usando 'cmp', es posible que desee ver el progreso de la comparación en curso. Esto se puede hacer usando el comando 'pv' junto con el comando 'cmp'. Aquí está la plantilla de comando que puede usar:

$ pv [file1] | cmp -l [file2] > [output-file]

Por ejemplo:

$ pv file1.txt | cmp -l file3.txt > output.txt

Tenga en cuenta que el archivo 'output.txt' contendrá todo el resultado que produce el comando 'cmp'. El medidor de progreso (que puede ver en la captura de pantalla anterior) es generado por el comando 'pv'.

El comando 'pv' por lo general no viene preinstalado en Linux (al menos no en Ubuntu). Pero puedes instalarlo fácilmente usando el siguiente comando:

sudo apt-get install pv

7. Cómo hacer que 'cmp' suprima la salida

La herramienta también le permite suprimir la salida que produce normalmente. Esto se puede hacer usando -s opción de línea de comando.

$ cmp -s [file1] [file2]

Por ejemplo:

$ cmp -s file1.txt file2.txt

Esta opción puede resultar útil cuando se usa la utilidad 'cmp' en los scripts. Por ejemplo, dependiendo de si los archivos son idénticos o no (lo cual se puede saber accediendo al código de salida del comando), es posible que desee mostrar un mensaje personalizado en lugar del resultado que la herramienta produce normalmente.

Conclusión

Hemos discutido la mayoría de las opciones del comando 'cmp' en este artículo, por lo que solo necesita practicarlas para comenzar a usar la herramienta en su trabajo diario. En caso de duda o consulta, consulte la página de manual de 'cmp'.


Linux
  1. Tutorial de comando cd de Linux para principiantes (8 ejemplos)

  2. Tutorial de comandos de comunicación de Linux para principiantes (5 ejemplos)

  3. Tutorial de comando Linux df para principiantes (8 ejemplos)

  4. Tutorial de comando de fecha de Linux para principiantes (8 ejemplos)

  5. Tutorial de comando de nombre de host de Linux para principiantes (5 ejemplos)

Linux who Command Tutorial para principiantes (8 ejemplos)

Tutorial de comandos Linux nl para principiantes (7 ejemplos)

Tutorial de comandos de Linux nm para principiantes (10 ejemplos)

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)