كيفية مقارنة ملفين في Linux

How Compare Two Files Linux



إذا كنت تريد مقارنة ملفين وفك تشفير الاختلاف ، فسيتم استدعاء الأمر فرق يستخدم. يركز هذا الدليل على تزويدك باستخدام فرق الأمر مع خيارات مختلفة للحصول على الفرق بين ملفين.

إذن ، كيف يفعل ملف فرق الأمر يعمل فعلا؟ ال فرق يقارن الأمر بين الملفين ويخرج قائمة بالاختلافات بين كلا الملفين. بتعبير أدق ، فإنه ينتج قائمة من التعديلات التي يجب إجراؤها في الملف الأول لمطابقة الملف الثاني. ال فرق يتم استخدام الأمر أيضًا من قبل المبرمجين للحصول على الفرق بين ملفي كود المصدر لتطوير التصحيحات.







قبل التعمق في الأمثلة ، لاحظ أن ترتيب الملفات مهم جدًا. بسبب ال فرق يعطي الأمر إخراجًا بناءً على ترتيب الملفات.



كيفية استخدام الأمر diff في Linux لمقارنة الملفات:

بناء جملة فرق الأمر مذكور أدناه:



$فرق [والخيارات] [ملف 1] [ملف 2]

أولاً ، قم بإنشاء ملفين. أنا أقوم بإنشاء ملفات نصية باسم test_file_1.txt و test_file_2.txt . تحتوي هذه الملفات على محتوى مع اختلاف طفيف:





الآن استخدم الأمر التالي للحصول على الفرق:



$فرقtest_file_1.txt test_file_2.txt

عرض الإخراج القياسي الأسطر التي تتطابق وفقًا لترتيب الملفات المذكورة في الأمر. لذلك ، دعونا نفك تشفير الناتج:

تتم تسمية مقارنة الملفات ، ولكل تسمية رقم على كلا الجانبين. التنسيق كالتالي:

[رقم سطر الملف 1] [التسمية (أ ، ج ، د)] [رقم سطر الملف 2]

هناك ثلاث تسميات:

  • إلى - إضافة: أضف محتوى في الملف الأول لمزامنته مع الملف الثاني.
  • ج - تغيير: يشير إلى ضرورة إجراء تعديل في محتوى الملف الأول لمطابقة الملف الثاني.
  • د - حذف: قم بإزالة المحتوى من الملف الأول لمطابقة الملف الثاني.

2d1 يشير إلى حذف السطر رقم 2 من الملف الأول لمطابقة الملف الثاني من السطر رقم 1.

بصورة مماثلة، 4c3 يعني إجراء تغيير في السطر الرابع من الملف الأول لمطابقة السطر رقم 3 من الملف الثاني لأن كلا السطرين مختلفان قليلاً.

هناك طريقة أخرى لعرض الفرق ، استخدم ملف فرق الأمر مع اختيار:

$فرق -في 60test_file_1.txt test_file_2.txt

في الإخراج أعلاه ، محتوى test_file_1.txt يتم عرضه على الجانب الأيسر ، بينما يتم عرض محتوى text_file_2.txt يتم عرضه على الجانب الأيمن. يشار إلى الاختلاف بالرموز:

  • | - الخط مختلف في الملف الثاني
  • > - سطر إضافي في الملف الثاني
  • <— Line has been deleted from the second file

يشير -W إلى العرض بين محتوى ملفين. للحصول على معلومات منفصلة وعرض الفرق ، استخدم ما يلي:

$فرق -في 60 - خطوط الدعم المشتركةtest_file_1.txt test_file_2.txt

كيفية الحصول على الإخراج في سطر واحد باستخدام الأمر diff:

إذا كان من الصعب عليك فك الشفرة ، فهناك طريقة أبسط. باستخدام -Q الخيار مع فرق يمنحك الأمر الإخراج في سطر واحد. حسنًا ، بدون أي معلومات إضافية ، على الرغم من:

$فرق -Qtest_file_1.txt test_file_2.txt

إذا اختلفت الملفات ، فسيعطي الأمر أعلاه مخرجات. إذا كانت الملفات متطابقة ، فلن يكون هناك إخراج. لإثبات ذلك ، أقوم بإنشاء نسخة من test_file_1.txt استخدام:

$cptest_file_1.txt test_file_3.txt

سيتم إنشاء ملف جديد باسم test_file_3.txt التي تحتوي على نفس المحتوى الذي test_file_1.txt لديها. الآن ، استخدم:

$فرق -Qtest_file_1.txt test_file_2.txt

نظرًا لأن كلا الملفين لهما محتوى متشابه ، فلن يكون هناك إخراج.

كيفية التحقق من اختلاف الملفات في وضع السياق باستخدام الأمر diff:

للحصول على المقارنة في وضع السياق ، فإن ملف سيتم استخدام الخيار مع فرق أمر:

$فرق test_file_1.txt test_file_2.txt

دعونا نحلل الإخراج.

للحفاظ على الاختلاف ، تتم الإشارة إلى الملف الأول بواسطة *** جنبًا إلى جنب مع تاريخ ووقت الإنشاء ، بينما تتم الإشارة إلى الملف الثاني بواسطة -.

يشير السطر التالي إلى مجموعة من الخطوط التي تم أخذها في الاعتبار أثناء المقارنة. بالنسبة للملف الأول ، فهو *** 1.6 **** والملف الثاني هو —1.5—- :

يشار إلى الاختلاف بالرموز:

  • +: الخط غير موجود في الملف الأول. أدخله في الملف الأول أو أزله من الملف الثاني لمطابقة كلا الملفين.
  • -: السطر موجود في الملف الأول ولكن ليس في الملف الثاني. حاول إدراجه في الملف الثاني أو إزالته من الملف الأول لمطابقة كلا الملفين.
  • ! : يحتاج الخط إلى تعديل من أجل المطابقة.

كيفية التحقق من اختلاف الملفات في الوضع الموحد باستخدام الأمر diff:

الوضع الموحد مشابه تمامًا لوضع السياق ولكن بدون معلومات زائدة عن الحاجة. العلم الذي نستخدمه هو -u :

$فرق -utest_file_1.txt test_file_2.txt

في الإخراج ، يُشار إلى الملف الأول بعلامة - والملف الثاني بعلامة +++. يعرض السطر الثاني عدد الأسطر التي تم النظر فيها للمقارنة في كلا الملفين ، ثم المحتوى المراد حذفه أو إضافته أو تعديله بالرموز الموجودة بهما. لن يكون هناك رمز بأسطر متشابهة في كلا الملفين.

كيفية تجاهل حساسية حالة الأحرف أثناء استخدام أمر diff:

إذا كنت تريد مقارنة الملفات مع تجاهل حساسية حالة الأحرف ، فاستخدم -أنا علم:

$فرق -أناtest_file_1.txt test_file_2.txt

للتوضيح ، لقد قمت بعمل ملف د من ديبين في الملف الأول صغير:

كما هو موضح في الأمر الأول ، يشار إلى الفرق ؛ أثناء استخدام -أنا تمت إزالة هذا الاختلاف.

بعض الخيارات المفيدة الأخرى لـ فرق الأمر مذكور أدناه:

خيار وصف
-إلى يعامل هذا الخيار جميع الملفات كملفات نصية
يتجاهل التعديل حيث تكون جميع الأسطر فارغة
يتجاهل هذا الخيار توسيع علامة التبويب
-أنا يتجاهل التغييرات حيث تتطابق جميع الأسطر
يعطي الإخراج عندما يتطابق ملفان
-في يتجاهل كل المساحات البيضاء
-مع يتجاهل المسافة البيضاء في نهاية السطر

كيفية استخدام محرر Vim لمقارنة ملفين:

هناك طريقة أخرى لمقارنة ملفين وهي استخدام الامتداد vimdiff أمر. لذلك ، تحتاج إلى تثبيت vim:

$سودوملائمتثبيت انا قد جئت

الآن ، لمقارنة ملفين ، استخدم:

$vimdiff test_file_1.txt test_file_2.txt

سيتم فتح كلا الملفين جنبًا إلى جنب. سيتم تمييز الجزء غير المتطابق:

كيفية مقارنة ملفين باستخدام colordiff:

نهج آخر هو نوع من تمديد فرق أمر. يمكنك جعل المقارنة أكثر قابلية للتحديد عن طريق إضافة ألوان إليها. لتثبيت استخدم:

$سودوملائمتثبيتكولورديف

لمقارنة الملفات ، استخدم:

$colordiff test_file_1.txt test_file_2.txt

يمكنك استبدال فرق مع كولورديف للحصول على الإخراج القياسي لـ فرق الأمر بتنسيق ملون.

استنتاج:

لمقارنة الملفات في Linux وحتى في macOS ، تُسمى الأداة المساعدة diff. تقارن الأداة المساعدة diff ملفين وتوفر معلومات حول الاختلافات بين الملفين. يستخدم المطورون بشكل أساسي الأمر diff لإنشاء ملفات التصحيح.

في هذا الدليل ، ناقشنا بدقة فرق الأمر وكيفية استخدامه لمقارنة ملفين بخيارات مختلفة. تعلمنا أيضًا كيفية الاستخدام كولورديف لجعل اختلافات الملفات أكثر قابلية للتمييز. ولكن إذا وجدت صعوبة في استخدام الأداة الطرفية ، فهناك بعض الأدوات المستندة إلى واجهة المستخدم الرسومية أيضًا ، مثل Kompare و DiffMerge و Meld - Diff Tool و Diffuse - GUI Giff Tool.