Way23
Главная
По категориям
Контакты
Главная
По категориям
Контакты

Сравнение файлов в Linux (cmp)

Команда cmp сравнивает два файла и выдаёт есть ли между ними различия. Для примеров используем несколько файлов:

user@debian-server:~/test$ cat file1.txt 
abcdef
user@debian-server:~/test$ cat file2.txt 
abcdef
user@debian-server:~/test$ cat file3.txt 
abcdefgh
user@debian-server:~/test$ cat file4.txt 
abzdwf

Если два файла полностью совпадают, то команда ничего не возвращает.

user@debian-server:~/test$ cmp file1.txt file2.txt 
user@debian-server:~/test$ 

В случае если один файл больше другого и начальная часть большего файла совпадает с меньшим файлом cmp выдаст сообщение о том, что меньший файл закончился (EOF — End Of File).

user@debian-server:~/test$ cmp file1.txt file3.txt 
cmp: EOF on file1.txt after byte 6, in line 1

Если в файлах есть различие, то cmp остановится на первом различающемся байте и выдаст сообщение с его номером.

user@debian-server:~/test$ cmp file1.txt file4.txt 
file1.txt file4.txt differ: byte 3, line 1

С параметром -b команда cmp выведет значения различающегося байта.

user@debian-server:~/test$ cmp -b file1.txt file4.txt 
file1.txt file4.txt differ: byte 3, line 1 is 143 c 172 z

А с параметром -l весь список различающихся байт.

user@debian-server:~/test$ cmp -l file1.txt file4.txt 
3 143 172
5 145 167

Параметры можно скомбинировать

user@debian-server:~/test$ cmp -lb file1.txt file4.txt 
3 143 c    172 z
5 145 e    167 w
Последниее изменение: 05.12.2023, 15:13