Команда diff в Linux

Программа diff показывает различия между двумя файлами. Различия можно понимать как описания тог, что нужно сделать, чтобы изменить первый так, чтобы он стал идентичен второму. Возьмем три файла, два из них одинаковые а третий отличается и сравним их командой diff.

user@debian-server:~/test$ cat names1.txt 
bob
alica
piter
david
user@debian-server:~/test$ cat names2.txt 
bob
alica
piter
david
user@debian-server:~/test$ cat names3.txt 
bob
alika
piter
ethan
david
user@debian-server:~/test$ diff names1.txt names2.txt 
user@debian-server:~/test$ diff names1.txt names3.txt 
2c2
< alica
---
> alika
3a4
> ethan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

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

user@debian-server:~/test$ diff -y names1.txt names3.txt 
bob				  				bob
alica							  |	alika
piter								piter
							      >	ethan
david								david
1
2
3
4
5
6

Примеры вывода в других форматах:

user@debian-server:~/test$ diff -u names1.txt names3.txt 
--- names1.txt	2023-12-03 06:01:32.572236158 -0500
+++ names3.txt	2023-12-03 06:04:25.722884812 -0500
@@ -1,4 +1,5 @@
 bob
-alica
+alika
 piter
+ethan
 david
user@debian-server:~/test$ diff -ed names1.txt names3.txt 
3a
ethan
.
2c
alika
.
user@debian-server:~/test$ man diff
user@debian-server:~/test$ diff -n names1.txt names3.txt 
d2 1
a2 1
alika
a3 1
ethan
user@debian-server:~/test$ diff -c names1.txt names3.txt 
*** names1.txt	2023-12-03 06:01:32.572236158 -0500
--- names3.txt	2023-12-03 06:04:25.722884812 -0500
***************
*** 1,4 ****
  bob
! alica
  piter
  david
--- 1,5 ----
  bob
! alika
  piter
+ ethan
  david
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Последниее изменение: 03.12.2023, 11:44:06