لینکس ڈف کمانڈ

Lynks F Kman



فرق ایک تصور یا احساس کا زیادہ امکان ہے جو ایک چیز کو دوسری چیز سے ممتاز کر سکتا ہے۔ 'diff' کمانڈ سے مراد تغیر ہے۔ دستاویزات کا لائن بہ لائن تجزیہ کرکے، یہ ٹول فائلوں کے درمیان فرق کو ظاہر کرتا ہے۔ یہ ہمیں مطلع کرتا ہے کہ ایک دستاویز میں کن سیکشنز کو تبدیل کرنے کی ضرورت ہے تاکہ اس کے ساتھی عناصر cmp اور comm کے برعکس، اسی طرح کی دستاویزات بنائیں۔ ذہن میں رکھنے کے لیے اہم پہلو یہ ہے کہ دستاویزات کے ایک جیسے ہونے کے لیے، diff مخصوص مخصوص علامتوں اور کمانڈز کا استعمال کرتا ہے۔ آپ کو ہدایات دی جاتی ہیں کہ پہلی دستاویز میں ترمیم کیسے کی جائے تاکہ یہ دوسری دستاویز کے مطابق ہو۔ اس گائیڈ کے اندر، ہم لینکس ٹرمینل کا استعمال کرتے ہوئے Ubuntu 20.04 میں 'diff' کمانڈ کے استعمال پر بات کریں گے۔

ہم اپنے سسٹم کے ورکنگ فولڈر میں دو ٹیکسٹ فائلیں بنا رہے ہیں۔









دونوں فائل کے مواد کے درمیان فرق کو ظاہر کرنے کے لیے استفسار کے علاقے میں 'diff' ہدایات کو استعمال کرنے کا وقت آگیا ہے۔ ہم اس 'متفرق' ہدایات کو ایک ترتیب میں دونوں فائل ناموں کے ساتھ آزماتے ہیں، یعنی پہلے one.txt اور پھر two.txt فائل۔ 'diff' کمانڈ پر عمل درآمد ہمیں دونوں فائلوں کے درمیان فرق دکھاتا ہے جیسے:



  • پہلی ٹیکسٹ فائل کے مطابق لائن نمبر۔
  • تبدیلی، شامل، حذف جیسے فرق کے بارے میں ہمیں بتانے کے لیے خصوصی حروف/علامت۔
  • دوسری ٹیکسٹ فائل کے مطابق لائن نمبر۔

اپنی پہلی مثال میں، ہم 'diff' کمانڈ آؤٹ پٹ کے لائن نمبرز کے درمیان 'a' علامت کی وضاحت کرتے ہیں۔ 'a' کو 'Add' کے مخفف کے طور پر استعمال کیا جاتا ہے۔ استفسار کے علاقے میں دونوں فائل ناموں کے ساتھ 'کیٹ' ہدایات کا استعمال ہر ٹیکسٹ فائل کے اندر موجود مواد کو علیحدہ طور پر ظاہر کرتا ہے، یعنی one.txt اور two.txt۔ ہمارے پاس پہلی فائل میں کل 4 لائنیں ہیں جبکہ دوسری فائل میں 5 لائنیں ہیں۔ لائن 1 اضافی ہے۔





اس کے بعد، ہم ٹرمینل استفسار کے علاقے پر 'diff' ہدایات کو آزماتے ہیں جس کے بعد فائلوں کے نام ہوتے ہیں - one.txt اور two.txt۔ اس ہدایات پر عمل درآمد دوسری فائل سے لائن 1 کے ساتھ آؤٹ پٹ کے طور پر '0a1' دکھاتا ہے جو دوسری فائل میں ایک اضافی لائن ہے۔ عددی قدر '0' پہلی فائل کی لائن 0 یا اس سے پہلے لائن 1 کے لیے استعمال ہوتی ہے، یعنی one.txt۔ علامت 'a' کا مطلب ہے 'اضافہ'۔ آخر میں، عددی قدر '1' کا مطلب دوسری فائل کی پہلی لائن ہے۔ مکس آؤٹ پٹ '0d1' کا مطلب ہے کہ دوسری فائل 'two.txt' کی لائن 1 کو پہلی فائل 'one.txt' کے اوپری حصے میں شامل کیا جانا چاہئے اس سے پہلے کہ پہلی لائن دو دونوں فائلوں کو ایک جیسی بنا دیں۔



اب، ہم ایک اور مثال دیکھنے کے لیے دونوں فائلوں کو اپ ڈیٹ کرتے ہیں۔ پہلی فائل 'one.txt' میں 4 لائنیں ہیں اور دوسری فائل 'two.txt' میں صرف 3 لائنیں ہیں۔ ان فائلوں کے لیے فرق صرف پہلی فائل میں ایک اضافی لائن کا استعمال ہے، یعنی لائن 1 = 'پیر' جو دوسری فائل میں نہیں ہے۔ اپ ڈیٹ شدہ ٹیکسٹ فائلوں کے لیے 'diff' ہدایات کو آزمانے کے بعد، ہمیں آؤٹ پٹ کے طور پر '1d0' ملتا ہے۔ اور پہلی فائل سے پہلی لائن ظاہر ہوتی ہے۔ '1d0' میں، 1 کا مطلب ہے کہ فائل 'one.txt' سے پہلی لائن کو حذف کر دیا جائے (علامت 'd' کے مطابق)، اور 0 کا مطلب ہے کہ دوسری فائل کو کوئی اپ ڈیٹ نہیں ملا۔ آخر میں، واضح فرق کے لیے پہلی فائل 'one.txt' سے لائن 1 ظاہر ہوتی ہے۔

اسی طرح، 'diff' کمانڈ دو فائلوں کی لائنوں کے درمیان فرق ظاہر کر سکتی ہے۔ لہذا، ہم دونوں ٹیکسٹ فائلوں کو ایک بار پھر اپ ڈیٹ کرتے ہیں۔ اس بار، پہلی فائل میں 5 لائنیں ہیں جبکہ دوسری فائل میں صرف 4 ہیں۔ فرق صرف one.txt میں ایک اضافی لائن کا استعمال ہے جو کہ لائن 3 ہے۔ ٹرمینل میں دونوں فائلوں پر استعمال ہونے والی diff کمانڈ ایک دکھاتی ہے۔ پہلی فائل 'one.txt' سے لائن 3 کے ساتھ '3d2' آؤٹ پٹ۔ یہ آؤٹ پٹ ظاہر کرتا ہے کہ پہلی فائل 'one.txt' سے لائن 3 کو حذف کردیا جانا چاہئے تاکہ ہم دوسری فائل کی لائن 2 پر دونوں فائلوں کو ہم آہنگ کرسکیں۔ مختلف لائن '3' ظاہر ہوتی ہے تاکہ ہم فرق کے بارے میں واضح خیال حاصل کر سکیں۔

آئیے آؤٹ پٹ پر ایک واضح اور گہری نظر ڈالیں۔ مندرجہ ذیل تصویر سے 1,5c1,2 آؤٹ پٹ ظاہر کرتا ہے کہ پہلی فائل (one.txt) کی 1 سے 5 لائنوں کو دوسری فائل (two.txt) کی 1 سے 2 لائنوں کے ساتھ تبدیل کیا جانا چاہیے۔ اس کا مطلب یہ ہے کہ one.txt فائل کی پہلی 5 لائنیں (1 سے 5) کو تبدیل کیا جانا چاہئے اور دوسری فائل 'two.txt' کی پہلی دو لائنوں (1, 2) کے ساتھ تبدیل کرنا چاہئے تاکہ اسے ایک جیسا بنایا جاسکے۔ آخر میں، پہلی فائل کی تمام 5 لائنیں ظاہر ہوتی ہیں جنہیں دوسری فائل کی ظاہر کردہ 2 لائنوں سے تبدیل کیا جانا چاہیے۔ اس طرح علامت 'c' دو فائلوں کے درمیان فرق بتاتی ہے - دونوں فائلوں میں کوئی لائن ایک جیسی نہیں ہے۔

'diff' کمانڈ آپ کو اس کی آؤٹ پٹ کو سیاق و سباق کی شکل میں حاصل کرنے کی اجازت دیتی ہے۔ تصور کریں کہ آپ کے پاس ان فائلوں میں درج ذیل ڈیٹا کے ساتھ وہی دو فائلیں ہیں۔ آؤٹ پٹ کے ارد گرد سیاق و سباق مندرجہ ذیل تصویر میں دکھائے گئے کل سادہ فائلوں کے درمیان بنیادی فرق کو ظاہر کرنا ہوگا۔ اب، ہمارے پاس پہلی فائل 'one.txt' میں 5 لائنیں ہیں اور دوسری فائل 'two.txt' میں 4 لائنیں ہیں۔

'diff' ہدایات کے سیاق و سباق پر مبنی آؤٹ پٹ حاصل کرنے کے لیے، ہمیں 'diff' کمانڈ کے اندر '-c' آپشن استعمال کرنے کی ضرورت ہے۔ اس 'diff' کمانڈ میں پہلے سے اپ ڈیٹ شدہ فائلوں کا استعمال کرتے ہوئے، ہمیں درج ذیل آؤٹ پٹ ملتا ہے - تاریخ، دن، فائلوں کے اندر ٹیکسٹ بنانے کے حوالے سے اضافی معلومات کے ساتھ۔ one.txt فائلوں سے 5 لائنیں ظاہر ہوتی ہیں۔ خاص طور پر، اس کی تیسری لائن کو صرف ایک اور فائل میں شامل کرنے کے لیے '-' کردار کا استعمال کرتے ہوئے نمایاں کیا گیا ہے۔

نتیجہ

ہم نے 'اختلاف' ہدایات کے بارے میں ہر چیز کو مختصر طور پر بیان کرنے کی کوشش کی۔ اس کے لیے، ہم نے ہر بار اپنی ٹیکسٹ فائلوں کو اپ ڈیٹ کیا اور فائل میں ڈیٹا کو شامل کرنے، ہٹانے اور تبدیل کرنے کے لیے اپ ڈیٹ آؤٹ پٹ حاصل کیا۔ تعارف نے لینکس میں 'diff' کمانڈ کے استعمال کے مقصد اور اسے لینکس کے لیے استعمال کرنے کے طریقہ کی وضاحت کی۔