Добавить в корзинуПозвонить
Найти в Дзене
LITVINOV-UPGRADE-LINUX

Утилиты для сравнение текстовых файлов в Astra Linux

Создадим 2 файла для сравнения В первом фале будет 20 строк с последовательной нумерацией: ~$ for i in {1..20}; do echo "String$i"; done > out01
~$ cat out01
String1
String2
..
String19
String20 Во втором будут только строки с четной нумерацией: ~$ for ((i=2; i<=20; i+=2)); do echo "String$i"; done > out02
~$ cat out02
String2
String4
..
String18
String20 ~$ sudo apt install meld ~$ sudo apt install diffuse ~$ diff -u out01 out02 > changes.patch теперь как применить изменения out02 к out01 ~$ diff -u out01 out02 > changes.patch (напомню в файле out01 все строки, в out02 только с четными номерами) --- /home/astra/out01 +++ /home/astra/out02 @@ -1,20 +1,10 @@ -String1 String2 -String3 String4 ........ -String17 String18 -String19 String20 Применим утилиту patch, изменим первый файл ко второму:
~$ patch out01 < 002-patch
patching file out01
~$ cat out01
String2
String4
String6
String8
String10
String12
String14
String16
String18
String20 sudo apt install qgi
Оглавление

Подготовка файлов.

Создадим 2 файла для сравнения

В первом фале будет 20 строк с последовательной нумерацией:

~$ for i in {1..20}; do echo "String$i"; done > out01
~$ cat out01


String1
String2
..
String19
String20

Во втором будут только строки с четной нумерацией:

~$ for ((i=2; i<=20; i+=2)); do echo "String$i"; done > out02
~$ cat out02


String2
String4
..
String18
String20

1. Утилита MELD

1.1 Установка

~$ sudo apt install meld

1.2 Задаем 2 файла (можно 3 файла) для сравнения.

1.3 Главное окно:

  1. подсвечивает различия
  2. позволяет редактировать файлы сразу в программе
  3. переносить строки отличающиеся строки (стрелочка по середине)
  4. работает с каталогами и поддерживает рекурсивное сравнение папок
  5. Работает c Git

-2

1.4 Можно генерить patch (различия файлов)

-3

2. Утилита DIFFUSE

2.1 Установка

~$ sudo apt install diffuse

2.2 Главное меню

  • поддерживает 3 и более окон для слияния.
  • можно указать подсветку для языка (Например: С++)
-4
-5

3. Сравнение в консоле

~$ diff -u out01 out02 > changes.patch

теперь как применить изменения out02 к out01

~$ diff -u out01 out02 > changes.patch

(напомню в файле out01 все строки, в out02 только с четными номерами)

--- /home/astra/out01
+++ /home/astra/out02
@@ -1,20 +1,10 @@
-String1
String2
-String3
String4
........
-String17
String18
-String19
String20

Применим утилиту patch, изменим первый файл ко второму:
~$ patch out01 < 002-patch
patching file out01


~$ cat out01
String2
String4
String6
String8
String10
String12
String14
String16
String18
String20

4. QGit

4.1 Установка

sudo apt install qgit

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

-6

-7