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
- 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*/
- 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