فرق
مثل بالاتصالات برنامج فرق يستخدم لاكتشاف الاختلافات بين الملفات. لكن، فرق هي أداة أكثر تعقيدًا ، فهي تدعم العديد من تنسيقات الإخراج والقدرة على معالجة مجموعات كبيرة من الملفات النصية في وقت واحد. فرق غالبًا ما يستخدمه مطورو البرامج لفحص التغييرات بين الإصدارات المختلفة من التعليمات البرمجية المصدر للبرنامج ، وبالتالي لديه القدرة على فحص أدلة التعليمات البرمجية المصدر بشكل متكرر ، وغالبًا ما يشار إليها باسم مصدر الأشجار. استخدام واحد شائع لـ فرق هو خلق ملفات فرق or بقع التي تستخدمها برامج مثل التصحيح (الذي سنناقشه بعد قليل) لتحويل إصدار واحد من ملف (أو ملفات) إلى إصدار آخر.
إذا استخدمنا فرق لإلقاء نظرة على ملفات الأمثلة السابقة:
[me @ linuxbox ~] $ فرق file1.txt file2.txt
1d0
<أ 4 أ 4
> و
[me @ linuxbox ~] $ فرق file1.txt file2.txt
1d0
<أ 4 أ 4
> و
نرى نمط الإخراج الافتراضي الخاص به: وصف مقتضب للاختلافات بين الملفين. في التنسيق الافتراضي ، يسبق كل مجموعة من التغييرات بامتداد قيادة التغيير في شكل نطاق التشغيل لوصف مواضع وأنواع التغييرات المطلوبة لتحويل الملف الأول إلى الملف الثاني:
جدول 20-4: أوامر تغيير الفرق
قم بتغيير الوصف
قم بتغيير الوصف
r1ar2 قم بإلحاق الأسطر في الموضع r2 في الملف الثاني لهذا المنصب
r1 في الملف الأول.
r1cr2 تغيير (استبدال) الخطوط في الموضع r1 مع الخطوط الموجودة في الموضع r2 في الملف الثاني.
r1dr2 احذف الأسطر في الملف الأول في الموضع r1، والذي كان سيظهر في النطاق r2 في الملف الثاني
في هذا التنسيق ، النطاق عبارة عن قائمة مفصولة بفواصل لخط البداية وخط النهاية. في حين أن هذا التنسيق هو الإعداد الافتراضي (في الغالب للتوافق مع POSIX والتوافق مع الإصدارات السابقة من نظام التشغيل Unix فرق) ، لا يتم استخدامه على نطاق واسع مثل غيرها من الحصائر الاختيارية. اثنان من الأشكال الأكثر شيوعًا هما تنسيق تنسيق السياق و شكل موحد.
عند عرضها باستخدام تنسيق السياق (ملف -c الخيار) ، سنرى هذا:
[me @ linuxbox ~] $ فرق -c file1.txt file2.txt
*** file1.txt 2008-12-23 06: 40: 13.000000000 -0500
--- file2.txt 2008-12-23 06: 40: 34.000000000 -0500
***************
*** 1,4،XNUMX ****
- ا ب ت ث
- 1,4،XNUMX ----
بى سى دى
+ و
[me @ linuxbox ~] $ فرق -c file1.txt file2.txt
*** file1.txt 2008-12-23 06: 40: 13.000000000 -0500
--- file2.txt 2008-12-23 06: 40: 34.000000000 -0500
***************
*** 1,4،XNUMX ****
- ا ب ت ث
- 1,4،XNUMX ----
بى سى دى
+ و
يبدأ الإخراج بأسماء الملفين والطوابع الزمنية الخاصة بهم. تم تمييز الملف الأول بعلامات نجمية والملف الثاني مميز بشرطة. طوال الفترة المتبقية من القائمة ، ستشير هذه العلامات إلى الملفات الخاصة بكل منها. بعد ذلك ، نرى مجموعات من التغييرات ، بما في ذلك العدد الافتراضي لخطوط السياق المحيطة. في المجموعة الأولى نرى:
*** 1,4،XNUMX ***
التي تشير إلى الأسطر من 1 إلى 4 في الملف الأول. فيما بعد نرى:
- 1,4 -
التي تشير إلى الأسطر من 1 إلى 4 في الملف الثاني. ضمن مجموعة التغيير ، تبدأ الخطوط بأحد المؤشرات الأربعة:
الجدول 20-5: مؤشرات تغيير تنسيق السياق المختلف
المؤشر المعنى
المؤشر المعنى
فارغ سطر موضح للسياق. لا يشير إلى وجود اختلاف بين الملفين.
- خط محذوف. سيظهر هذا السطر في الملف الأول ولكن ليس في الملف الثاني.
+ إضافة سطر. سيظهر هذا السطر في الملف الثاني ولكن ليس في الملف الأول.
! خط تغير. سيتم عرض نسختين من الخط ، كل في القسم الخاص به من مجموعة التغيير.
التنسيق الموحد مشابه لتنسيق السياق ولكنه أكثر إيجازًا. يتم تحديده مع -u الخيار:
[me @ linuxbox ~] $ فرق -u file1.txt file2.txt
--- file1.txt 2008-12-23 06: 40: 13.000000000 -0500
+++ file2.txt 2008-12-23 06: 40: 34.000000000 -0500
-1,4 +1,4
-ا ب ت ث
+e
[me @ linuxbox ~] $ فرق -u file1.txt file2.txt
--- file1.txt 2008-12-23 06: 40: 13.000000000 -0500
+++ file2.txt 2008-12-23 06: 40: 34.000000000 -0500
-1,4 +1,4
-ا ب ت ث
+e
يتمثل الاختلاف الأكثر بروزًا بين السياق والتنسيقات الموحدة في إزالة أسطر السياق المكررة ، مما يجعل نتائج التنسيق الموحد أقصر من نتائج تنسيق السياق. في مثالنا أعلاه ، نرى الطوابع الزمنية للملف مثل تلك الخاصة بتنسيق con- text ، متبوعة بالسلسلة -1,4 +1,4. يشير هذا إلى الأسطر الموجودة في الملف الأول والأسطر الموجودة في الملف الثاني الموضحة في مجموعة التغيير. يلي ذلك الأسطر نفسها ، مع الأسطر الثلاثة الافتراضية للسياق. يبدأ كل سطر بأحد ثلاثة أحرف محتملة:
الجدول 20-6: فرق مؤشرات تغيير التنسيق الموحد
معنى الحرف
معنى الحرف
فارغ هذا الخط مشترك بين كلا الملفين.
- تم حذف هذا الخط من الملف الأول.
+ تم إضافة هذا السطر إلى الملف الأول.