Comando cmp en Linux con ejemplos

El comando cmp en Linux/UNIX se usa para comparar los dos archivos byte por byte y lo ayuda a averiguar si los dos archivos son idénticos o no.

  • Cuando se usa cmp para la comparación entre dos archivos, informa la ubicación de la primera discrepancia en la pantalla si se encuentran diferencias y si no se encuentran diferencias, es decir , los archivos comparados son idénticos.
  • cmp no muestra ningún mensaje y simplemente devuelve el aviso si los archivos comparados son idénticos.
Syntax:
cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]

SKIP1 ,SKIP2 & OPTION are optional 
and FILE1 & FILE2 refer to the filenames .

La sintaxis del comando cmp es bastante simple de entender. Si estamos comparando dos archivos, obviamente necesitaremos sus nombres como argumentos ( es decir, como ARCHIVO1 y ARCHIVO2 en la sintaxis ). Además de esto, los opcionales SKIP1 y SKIP2 especifican el número de bytes a saltar al principio de cada archivo que es cero por defecto y OPTION se refiere a las opciones compatibles con este comando sobre las que hablaremos más adelante. cmp Ejemplo: como se explicó, el comando cmp informa el byte y el número de línea si se encuentra una diferencia. Ahora vamos a averiguar lo mismo con la ayuda de un ejemplo. Supongamos que hay dos archivos que desea comparar, uno es file1.txt y otro es file2.txt:

$cmp file1.txt file2.txt
  1. Si los archivos no son idénticos: la salida del comando anterior será:
$cmp file1.txt file2.txt
file1.txt file2.txt differ: byte 9, line 2

 /*indicating that the first mismatch found in
 two files at byte 20 in second line*/
  1. Si los archivos son idénticos: verá algo como esto en su pantalla:
$cmp file1.txt file2.txt
$_
/*indicating that the files are identical*/

Opciones para el comando cmp

1. -b(print-bytes): si desea que cmp muestre los diferentes bytes en la salida cuando se usa con la opción -b .

//...cmp command used with -b option...//

$cmp -b file1.txt file2.txt
file1.txt file2.txt differ: 12 byte, line 2 is 154 l 151 i

/* indicating that the difference is in 12
 byte ,which is 'l' in file1.txt and 'i' in file2.txt.*/

Los valores 154 y 151 en la salida anterior son los valores para estos bytes, respectivamente. 2. -i [bytes-to-be-skipped]: ahora, esta opción cuando se usa con el comando cmp ayuda a omitir un número particular de bytes iniciales de ambos archivos y luego, después de omitir, compara los archivos. Esto se puede hacer especificando el número de bytes como argumento para la opción de línea de comando -i.

//...cmp command used with -i option...//

$cmp -i 10 file1.txt file2.txt
$_

/*indicating that both files are identical 
after 10 bytes skipped from both the files*/

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. 3. -i [bytes que se omitirán del primer archivo]: [bytes que se omitirán del segundo archivo]: esta opción es muy similar a la opción anterior -i [bytes que se omitirán] pero con la diferencia de que ahora permite nosotros para ingresar la cantidad de bytes que queremos omitir de ambos archivos por separado.

//...cmp command used with -i option...//

$cmp -i 10:12 file1.txt file2.txt
$_

/*indicating that both files are identical 
after 10 bytes skipped from first file and 
12 bytes skipped from second file*/

4. Opción -l: esta opción hace que el comando cmp imprima la posición del byte y el valor del byte para todos los bytes diferentes.

//...cmp command used with -l option...//

$cmp -l file1.txt file2.txt 
20   12   56
21  124   12
22  150  124
23  151  150
24  163  151
25   40  163
26  146   40
27  150  151
28   12   24
29  124  145
30  157  163

/*indicating that files are different 
displaying the position of differing 
bytes along with the differing bytes
 in both file*/

La primera columna de la salida representa la posición (número de byte) de bytes diferentes. 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. Opción -s: Esto le permite suprimir la salida normalmente producida por el comando cmp, es decir , compara dos archivos sin escribir ningún mensaje. Esto da un valor de salida de 0 si los archivos son idénticos, un valor de 1 si son diferentes o un valor de 2 si aparece un mensaje de error.

//...cmp command used with -s option...//

$cmp -s file1.txt file.txt 
1

/*indicating files are different without
displaying the differing byte and line*/

6. Opción -n [número de bytes a comparar]: esta opción le permite limitar el número de bytes que desea comparar, por ejemplo, si solo necesita comparar un máximo de 25 o 50 bytes.

//...cmp command used with -n option...//

$cmp -n 50 file1.txt file2.txt
$_

/*indicating files are identical for starting
50 bytes*/

8. – Opción -v: Esto da la información de salida y sale. 9. – Opción -help: Esto muestra un mensaje de ayuda y sale.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L

Publicación traducida automáticamente

Artículo escrito por Kartik Thakral y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *