Сравнение двух файлов в 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 - это очень удобный инструмент для сравнения двух и более файлов.


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

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

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

Unlix © Все права защищены 2019

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