Мне в Ред ОС понравилось сравнивать 2 файла используя vimdiff
Для сравнения двух файлов в консоли Linux и отображения их различий можно использовать несколько команд. Одними из самых популярных инструментов для этого являются команды diff и cmp.
Использование команды diff
Команда diff сравнивает два файла построчно и показывает различия между ними.
Вот синтаксис использования diff:
diff file1 file2
Пример использования:
diff file1.txt file2.txt
Основные опции команды diff
-u: вывод различий в формате объединения (unified format), который более читаем.-c: вывод различий в контекстном формате.--side-by-side: вывод различий в виде двух колонок для сравнения строк.
Пример с использованием -u:
diff -u file1.txt file2.txt
Использование команды cmp
Команда cmp сравнивает два файла побайтово и сообщает, на каком байте находятся первые различия.
Пример использования:
cmp file1.txt file2.txt
Визуализация различий с помощью команды vimdiff
Если установлен текстовый редактор Vim, можно использовать vimdiff для наглядного отображения различий в графическом режиме:
vimdiff file1.txt file2.txt
Для выхода: Esc : qa! Enter
Пример вывода команды diff
Для примера предположим, что есть два файла file1.txt и file2.txt со следующим содержимым:
file1.txt:
Hello, World!
This is a test file.
Goodbye!
file2.txt:
Hello, World!
This is a modified file.
Goodbye!
Команда diff file1.txt file2.txt выдаст:
2c2
< This is a test file.
---
> This is a modified file.
Команда diff -u file1.txt file2.txt выдаст:
--- file1.txt 2024-07-04 12:34:56.000000000 +0000
+++ file2.txt 2024-07-04 12:35:10.000000000 +0000
@@ -1,3 +1,3 @@
Hello, World!
-This is a test file.
+This is a modified file.
Goodbye!
Использование этих команд позволит вам эффективно сравнивать файлы и выявлять различия в консоли Linux.
А можно так чтоб в 2-ва столбика и построчно?
Да, вы можете сравнить два файла и вывести различия в виде двух столбиков с помощью команды diff с опцией --side-by-side. Это позволяет наглядно видеть, какие строки различаются между двумя файлами. Вот как это сделать:
diff --side-by-side file1.txt file2.txt
Эта команда выведет строки из обоих файлов рядом друг с другом. Строки, которые отличаются, будут отмечены символами. Например, | указывает на различие между строками, < означает, что строка существует только в первом файле, а > – что строка существует только во втором файле.
Пример использования:
diff --side-by-side file1.txt file2.txt
Результат выполнения команды будет выглядеть следующим образом:
Hello, World! Hello, World!
This is a test file. | This is a modified file.
Goodbye! Goodbye!
Чтобы вывод был более удобен для чтения, можно добавить опцию --width=N, где N – ширина экрана в символах. Например:
diff --side-by-side --width=80 file1.txt file2.txt
Таким образом, вы сможете удобно сравнивать два файла построчно в виде двух столбиков.
А чтоб и в 2 столбика и с выделением различий?
Для сравнения двух файлов с отображением в двух столбиках и выделением различий можно использовать команду diff с опциями --side-by-side и --suppress-common-lines. Это позволит увидеть различия более наглядно.
Вот пример команды:
diff --side-by-side --suppress-common-lines file1.txt file2.txt
Эта команда покажет только строки, которые отличаются, в двух столбиках. Строки, которые совпадают, не будут отображены.
Если вам нужно выделение различий, то в терминале можно использовать команду colordiff, которая является цветной версией diff. Установите colordiff, если он не установлен:
sudo apt-get install colordiff # для систем на основе Debian/Ubuntu
И используйте его с той же опцией --side-by-side:
colordiff --side-by-side file1.txt file2.txt
Результат выполнения команды будет выглядеть следующим образом, с выделенными цветом различиями:

Использование colordiff позволит вам более наглядно видеть различия между файлами, благодаря цветному выделению.
