Сравнение двух файлов в Linux

Бывает появляется необходимость сравнить содержимое двух файлов (например, конфигураций), чтобы выявить внесенные изменения. В линукс это можно сделать многими способами. Но в этой статье мы рассмотрим утилиту diff.

Diff – это пакет из стандартного репозитория, который работает в консоли. Его использовать очень просто.

$ diff options file1 file2

Можно так же сравнивать более двух файлов.

$ diff options file1 file2 file3 file4

Опции у diff следующие:

-q – выводить только отличия файлов;
-s – выводить только совпадающие части;
-с – выводить нужное количество строк после совпадений;
-u – выводить только нужное количество строк после отличий;
-y – выводить в две колонки;
-e – вывод в формате ed скрипта;
-n – вывод в формате RCS;
-a – сравнивать файлы как текстовые, даже если они не текстовые;
-t – заменить табуляции на пробелы в выводе;
-l – разделить на страницы и добавить поддержку листинга (как у less);
-r – рекурсивное сравнение папок;
-i – игнорировать регистр;
-E – игнорировать изменения в табуляциях;
-Z – не учитывать пробелы в конце строки;
-b – не учитывать пробелы;
-B – не учитывать пустые строки.

В выводе сравнения файлов указываются символы, которые обозначают следующее:

a – добавлено
d – удалено
c – изменено

> – строка совпадает
< - строка отличается Рассмотрим пример. У нас есть два файла. Посмотрим их содержимое: $ cat file1
1
2
3
a
b
c

$ cat file2
1
a
2
a
3
c

Как видим, они отличаются. Попробуем их сравнить.

$ diff file1 file2
1a2
> a
3d3
< 3 5c5 < b --- > 3

Но мне нравится больше в две колонки:

$ diff -y file1 file2
1 1
> a
2 2
3 < a a b | 3 c c

Как видно, diff - это очень удобный инструмент для сравнения двух и более файлов.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix.ru © Все права защищены 2015 - 2024

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!