Об'єднання файлів стає простішим: використання команди diff3 у Linux

watch 27s
views 2

10:50, 09.04.2026

Зміст статті
arrow

  • Ознайомлення з командою diff3
  • Огляд синтаксису diff3
  • Часто вживані опції
  • Як визначити відмінності файлів у Linux
  • Об'єднання файлів за допомогою diff3 у Linux
  • Інтеграція змін з декількох файлів за допомогою diff3
  • Обробка конфліктів під час злиття diff3
  • Підсумки

Об'єднання файлів може стати набагато простішим за допомогою таких корисних інструментів, як команда diff3. Системні адміністратори і програмісти, які постійно працюють з декількома версіями файлу і хочуть прискорити цей процес, можуть використовувати diff3. Ця команда необхідна для визначення відмінностей у різних версіях одного і того ж файлу.

Завдяки нашим практичним знанням, ми вирішили пояснити, як працюють основи diff3, і поділитися деякими корисними прикладами, щоб ви могли чітко розібратися в цьому інструменті і його використанні в системі Linux.

Ознайомлення з командою diff3

Команда diff3 порівнює файли, визначає відмінності між ними і виводить цю інформацію у досить простій для розуміння користувачем формі.

Основні випадки використання цього інструменту наступні:

  • Злиття з різних файлів може бути виконано автоматично.
  • Можна легко знайти відмінності між файлами.
  • Вирішення конфліктів, що виникають під час злиття різних версій.

 Існують також команди diff і sdiff, які можна використовувати для злиття версій, але особливістю diff3 є те, що ви можете працювати з 3 різними версіями і легко об'єднати їх в один конкретний файл.

Огляд синтаксису diff3

Ось як виглядає стандартне використання команди:

diff3 [options] f1 f2 f3

У цьому рядку f1 вказує на початкову версію файлу, f2 - на 2-гу версію, а f3 - на 3-тю.

Часто вживані опції

Нижче наведено список найпоширеніших опцій для цієї команди, деякі з них наведено нижче:

  • -m: об'єднання файлів відбувається автоматично.
  • -e: ця опція потрібна для створення редагованого скрипта, необхідного для застосування змін.
  • -3: показує лише відмінності між 3 файлами.
  • -A: додати всі доступні зміни з 3 файлів.
  • -E: об'єднання файлів, навіть якщо існує певний конфлікт.  

Як визначити відмінності файлів у Linux

Якщо у вас є 3 версії одного і того ж файлу і дані в них дещо відрізняються, ви можете легко порівняти ці версії. Після цього ви отримаєте висновок з інформацією про кожен рядок у кожній версії, якщо десь буде додано новий рядок, ви побачите цю інформацію, або якщо певний рядок буде змінено в одній з цих версій, ви також отримаєте ці дані.

Для порівняння цих файлів скористайтеся наступною командою:

 diff3 f1.txt f2.txt f3.txt

Після використання цієї команди ви отримаєте висновок з деякими змінами, які були зроблені у всіх 3 версіях. Зазвичай, дані будуть показані для кожної версії з такими цифрами:

  • 1:2c: означає, що перша версія має зміни у 2-му рядку, і ви також побачите вміст цього рядка.
  • 2:3c: означає, що друга версія файлу має зміни в 3-му рядку, і ви побачите саме цей рядок.
  • 3:2,3c: означає, що версія 3 має зміни в рядках 2 і 3.

Об'єднання файлів за допомогою diff3 у Linux

Щоб об'єднати всі ці 3 версії в одному файлі, ви можете скористатися опцією -m. Це означає, що буде створено новий файл з усіма змінами.

diff3 -m f1.txt f2.txt f3.txt

Результат виконання цієї команди покаже, де в рядках є конфлікти. Наприклад, якщо всі 3 версії мають зміни в одному рядку, ви можете вручну відредагувати і зберегти інформацію, яка дійсно потрібна.  

Інтеграція змін з декількох файлів за допомогою diff3

Щоб інтегрувати зміни з усіх версій і створити редагований скрипт, вам потрібно використовувати опцію -e наступним чином:

diff3 -e f1.txt f2.txt f3.txt > scriptfile

За допомогою цього рядка ви створите файл scriptfile, що містить скрипт ed, який можна використовувати наступним чином:

ed f1.txt < scriptfile

Це змінить першу версію файлу відповідно до змін, зроблених у файлі scriptfile, і ви можете перевірити, чи були зроблені зміни, за допомогою наступної команди:

cat f1.txt

Це покаже, які рядки є у версії f1, що значно спростить автоматичне злиття файлів.

Обробка конфліктів під час злиття diff3

Конфлікт під час злиття виникає, коли існує різниця в одному і тому ж розташуванні файлу. Такі конфлікти відображаються у виводі, тому ви можете перевірити, де вони виникли, і виправити все самостійно. Нижче наведено покрокову інструкцію, яку слід виконати для усунення конфлікту:

  • Відкрийте файл, в якому виник конфлікт.
  • Змініть файл потрібним чином, ви можете редагувати/видаляти рядки.
  • Не забудьте зберегти файл.

Підсумки

diff3 - це чудовий метод, за допомогою якого ви можете працювати з різними версіями одного і того ж файлу. Ви можете легко виявити відмінності між версіями, а в разі необхідності, ви також можете об'єднати всі 3 версії. 

Поділитися

Чи була ця стаття корисною для вас?

Популярні пропозиції VPS

-10%

CPU
CPU
6 Epyc Cores
RAM
RAM
8 GB
Space
Space
100 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 8192 Windows

28.99

При оплаті за рік

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 4096 Linux

12.12

При оплаті за рік

-10%

CPU
CPU
4 Epyc Cores
RAM
RAM
4 GB
Space
Space
50 GB NVMe
Bandwidth
Bandwidth
Unlimited
aiKVM-NVMe 4096 Linux

16.84

При оплаті за рік

-10%

CPU
CPU
10 Epyc Cores
RAM
RAM
64 GB
Space
Space
400 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 65536 Linux

135.49

При оплаті за рік

-10%

CPU
CPU
3 Epyc Cores
RAM
RAM
2 GB
Space
Space
25 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 2048 Windows

9.9

При оплаті за рік

-10.2%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
100 Mbps
DDoS Protected SSD-KVM 16384 Linux

123

При оплаті за 6 місяців

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
MT5 KVM 8192 Windows

29.99

При оплаті за рік

-10%

CPU
CPU
6 Epyc Cores
RAM
RAM
8 GB
Space
Space
100 GB NVMe
Bandwidth
Bandwidth
Unlimited
aiKVM-NVMe 8192 Linux

26.99

При оплаті за рік

-9.7%

CPU
CPU
10 Xeon Cores
RAM
RAM
64 GB
Space
Space
300 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 65536 Windows

138.99

При оплаті за рік

-10%

CPU
CPU
8 Epyc Cores
RAM
RAM
32 GB
Space
Space
200 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 32768 Linux

70.49

При оплаті за рік

Інші статті на цю тему

cookie

Чи приймаєте ви файли cookie та політику конфіденційності?

Ми використовуємо файли cookie, щоб забезпечити вам найкращий досвід роботи на нашому сайті. Якщо ви продовжуєте користуватися сайтом, не змінюючи налаштувань, вважайте, що ви згодні на отримання всіх файлів cookie на сайті HostZealot.