У вашому першому diffвисновку (так званий "нормальний різний") значення полягає в наступному
< - позначає рядки у file1.txt
> - позначає рядки у file2.txt
3d2і 5a5позначають номери рядків, на які постраждали, і які дії були виконані. dозначає видалення, aрозшифровує додавання (і cозначає зміну). число зліва від символу - це номер рядка у file1.txt, число праворуч - номер рядка у file2.txt. Отже, 3d2вам повідомляється, що 3-й рядок у file1.txt був видалений і має рядок номер 2 у file2.txt (а краще сказати, що після видалення лічильник рядків повернувся до рядка № 2). 5a5говорить вам, що ми починали з рядка № 5 у file1.txt (який був фактично порожнім після того, як ми видалили рядок у попередній дії), додав рядок, і цей доданий рядок - це число 5 у file2.txt.
Виведення diff -uкоманди форматується дещо інакше (так званий "уніфікований формат"). Тут diffнам показаний один фрагмент тексту замість двох окремих текстів. У рядку @@ -1,5 +1,5 @@частина -1,5стосується file1.txt, а частина +1,5- file2.txt. Вони кажуть нам, що diffпокаже фрагмент тексту, який триває 5 рядків, починаючи з рядка № 1 у file1.txt. І те саме про file2.txt - diffпоказує нам 5 рядків, починаючи з першого рядка.
Як я вже говорив, рядки з обох файлів відображаються разом
this is the original text
line2
-line3
line4
happy hacking !
+GNU is not UNIX
Тут -позначаються рядки, які були видалені з file1.txt, і +позначаються рядки, які були додані.