قيادة Linux Diff

Qyadt Linux Diff



من المرجح أن يكون الاختلاف مفهومًا أو شعورًا يمكن أن يميز شيئًا عن آخر. يشير الأمر 'فرق' إلى التباين. من خلال تحليل المستندات سطرًا بسطر ، توضح هذه الأداة الفروق بين الملفات. تخبرنا الأقسام الموجودة في مستند واحد التي يجب تغييرها لإنشاء مستندات متشابهة ، على عكس العناصر المصاحبة cmp و comm. الجانب المهم الذي يجب أخذه في الاعتبار هو أنه لكي تكون المستندات متشابهة ، يستخدم الفرق رموزًا وأوامرًا خاصة محددة. يتم إعطاؤك توجيهات حول كيفية تعديل المستند الأول بحيث يكون متسقًا مع المستند الآخر. في هذا الدليل ، سنناقش استخدام الأمر 'diff' في Ubuntu 20.04 باستخدام محطة Linux الطرفية.

لقد قمنا بإنشاء ملفين نصيين في مجلد العمل الخاص بنظامنا.









حان الوقت لاستخدام تعليمات 'الاختلافات' في منطقة الاستعلام لعرض الفرق بين محتويات الملفين. نجرب تعليمات 'الفرق' هذه مع كل من اسمي الملفين في تسلسل ، على سبيل المثال ، ملف one.txt أولاً ثم ملف two.txt. يوضح لنا تنفيذ الأمر 'diff' الفرق بين كلا الملفين على النحو التالي:



  • أرقام الأسطر حسب الملف النصي الأول.
  • أحرف / رموز خاصة لإعلامنا بالاختلاف مثل التغيير والإضافة والحذف.
  • أرقام الأسطر حسب الملف النصي الثاني.

في الرسم التوضيحي الأول ، قمنا بالتفصيل عن الرمز 'a' بين أرقام الأسطر الخاصة بإخراج الأمر 'diff' ؛ يتم استخدام 'أ' كاختصار لـ 'إضافة'. يؤدي استخدام تعليمات 'cat' مع كلا اسمي الملفين في منطقة الاستعلام إلى عرض المحتوى داخل كل ملف نصي بشكل منفصل ، على سبيل المثال ، one.txt و two.txt. لدينا إجمالي 4 أسطر داخل الملف الأول بينما يحتوي الملف الثاني على 5 أسطر. الخط 1 إضافي.





بعد ذلك ، نجرب تعليمة 'diff' في منطقة الاستعلام الطرفي متبوعة بأسماء الملفات - one.txt و two.txt. يُظهر تنفيذ هذه التعليمات '0a1' كمخرج مع السطر 1 من الملف الثاني وهو سطر إضافي في الملف الثاني. يتم استخدام القيمة العددية '0' للسطر 0 أو قبل السطر 1 من الملف الأول ، أي one.txt. الرمز 'أ' يعني 'إضافة'. أخيرًا ، القيمة العددية '1' تعني السطر الأول من الملف الثاني. ناتج المزج '0d1' يعني أنه يجب إضافة السطر الأول من الملف الثاني 'two.txt' في أعلى الملف الأول 'one.txt' قبل أن يجعل السطر الأول كلا الملفين متماثلين.



الآن ، نقوم بتحديث كلا الملفين لرؤية توضيح آخر. يحتوي الملف الأول “one.txt” على 4 أسطر والملف الثاني “two.txt” يحتوي على 3 أسطر فقط. الاختلاف الوحيد لهذه الملفات هو استخدام سطر إضافي في الملف الأول ، أي السطر 1 = 'الاثنين' وهو ليس في الملف الثاني. بعد تجربة تعليمات 'diff' للملفات النصية المحدَّثة ، نحصل على '1d0' كإخراج. ويتم عرض السطر الأول من الملف الأول. في '1d0' ، 1 يعني أنه يجب حذف السطر الأول من الملف 'one.txt' (حسب الرمز 'd') ، ويعني 0 أن الملف الثاني لم يتم تحديثه. في النهاية ، يتم عرض السطر الأول من الملف الأول 'one.txt' للفرق الواضح.

وبالمثل ، يمكن أن يعرض الأمر 'فرق' اختلافًا بين سطري ملفين. لذلك ، نقوم بتحديث كلا الملفين النصيين مرة أخرى. هذه المرة ، يحتوي الملف الأول على 5 أسطر بينما يحتوي الملف الثاني على 4 فقط. الاختلاف الوحيد هو استخدام سطر إضافي في one.txt وهو السطر 3. يعرض الأمر diff المستخدم في كلا الملفين في المحطة الطرفية إخراج '3d2' مع السطر 3 من الملف الأول 'one.txt'. يوضح هذا الإخراج أنه يجب حذف السطر 3 من الملف الأول 'one.txt' حتى نتمكن من مزامنة كلا الملفين في السطر 2 من الملف الثاني. يتم عرض السطر المختلف '3' حتى نتمكن من الحصول على فكرة واضحة عن الاختلاف.

دعونا نلقي نظرة واضحة وأعمق على الناتج. يُظهر إخراج 1،5c1،2 من الصورة التالية أنه يجب تغيير الأسطر من 1 إلى 5 من الملف الأول (one.txt) باستخدام الأسطر من 1 إلى 2 من الملف الثاني (two.txt). هذا يعني أنه يجب تغيير الأسطر الخمسة الأولى (1 إلى 5) من ملف one.txt واستبدالها بالسطرين الأولين (1 ، 2) من الملف الثاني 'two.txt' لجعلها كما هي. في النهاية ، يتم عرض جميع الأسطر الخمسة من الملف الأول والتي يجب استبدالها بالسطرين المعروضين من الملف الثاني. هذه هي الطريقة التي يوضح بها الرمز 'c' الفرق بين الملفين - لا يوجد سطر متماثل في كلا الملفين.

يسمح لك الأمر 'فرق' بالحصول على مخرجاته في نموذج سياق. تخيل أن لديك نفس الملفين بالبيانات التالية في هذه الملفات. سيكون السياق حول الإخراج هو عرض الاختلاف الرئيسي بين إجمالي الملفات البسيطة التي تظهر في الصورة التالية. الآن ، لدينا 5 أسطر في الملف الأول “one.txt” و 4 أسطر في الملف الثاني “two.txt”.

للحصول على مخرجات تعليمة 'diff' المستندة إلى السياق ، نحتاج إلى استخدام الخيار '-c' داخل الأمر 'diff'. باستخدام الملفات التي تم تحديثها مسبقًا في هذا الأمر 'diff' ، نحصل على الإخراج التالي - التاريخ ، اليوم ، جنبًا إلى جنب مع المعلومات الإضافية المتعلقة بإنشاء النص داخل الملفات. يتم عرض الأسطر الخمسة من ملفات one.txt. على وجه الخصوص ، يتم تمييز السطر الثالث باستخدام الحرف '-' لإضافته إلى ملف آخر.

استنتاج

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