लिनक्स diff कमांड – एक परिचय

Ankur Gupta
Ankur Guptahttps://antarjaal.in
पेशे से वेब डेवेलपर, पिछले १० से अधिक वर्षों का वेबसाइटें और वेब एप्लिकेशनों के निर्माण का अनुभव। वर्तमान में ईपेपर सीएमएस क्लाउड (सॉफ्टवेयर एज सर्विस आधारित उत्पाद) का विकास और संचालन कर रहे हैं। कम्प्यूटर और तकनीक के विषय में खास रुचि। लम्बे समय तक ब्लॉगर प्लेटफॉर्म पर लिखते रहे. फिर अपना खुद का पोर्टल आरम्भ किया जो की अन्तर्जाल डॉट इन के रूप में आपके सामने है.

लिनक्स ऑपरेटिंग सिस्टम पर, diff कमांड दो फाइलों का विश्लेषण करती है और उन लाइनों को प्रिंट करती है जो अलग-अलग होती हैं। संक्षेप में, यह एक फ़ाइल को दूसरी फ़ाइल के समान बनाने के लिए निर्देशों का एक सेट आउटपुट करता है।

diff सॉफ़्टवेयर वास्तव में इसकी तुलना की गई फ़ाइलों को नहीं बदलता है। हालाँकि, यह वैकल्पिक रूप से प्रोग्राम ed या ex के लिए एक स्क्रिप्ट (यदि -e विकल्प निर्दिष्ट किया गया है) पैदा कर सकता है जिसका उपयोग परिवर्तनों को लागू करने के लिए किया जा सकता है।

उदाहरण के लिए, दो फ़ाइलों पर चर्चा करते हैं, file1.txt और file2.txt

file1.txt में निम्नलिखित चार लाइनें हैं:

I need to buy apples.
I need to run the laundry.
I need to wash the dog.
I need to get the car detailed.

… और file2.txt में ये चार लाइनें हैं:

I need to buy apples.
I need to do the laundry.
I need to wash the car.
I need to get the dog detailed.

तब हम diff कमांड का प्रयोग कर सकते हैं जो कि हमें यह दिखा देगा कि दोनो फाइलों में कौन कौन से पंक्तियों में अंतर है।

diff file1.txt file2.txt

… और परिणाम होगा:

2,4c2,4
< I need to run the laundry.
< I need to wash the dog.
< I need to get the car detailed.
---
> I need to do the laundry.
> I need to wash the car.
> I need to get the dog detailed.

जब diff आपको इन अंतरों का वर्णन करता है, तो यह आपको बता रहा है कि दूसरी फ़ाइल से मिलान करने के लिए पहली फ़ाइल को कैसे बदलना है। इसे इस प्रकार दिखाया जाता है।

  • पहली फ़ाइल के अनुरूप लाइन नंबर,
  • एक अक्षर (जोड़ने के लिए a, परिवर्तन के लिए c या हटाने के लिए d), और
  • दूसरी फ़ाइल के अनुरूप लाइन नंबर।

ऊपर हमारे आउटपुट में, “2,4c2,4” का अर्थ है: file1.txt की दूसरी से लेकर चौथी लाइन को file2.txt की दूसरी से लेकर चौथी लाइन से बदलें

जिन पंक्तियों के आगे < लगा होता है वो पहली फाइल की होती हैं और जिन लाइनों के आगे > लगा होता है वो दूसरी फाइल की होती हैं।

(—) ये तीन डैश दोनो फाइलों की पंक्तियों को अलग अलग करते हैं।

चलिए diff कमांड का दूसरा उदाहरण लेते हैं

file1.txt में निम्नलिखित पंक्तियां हैं:

Gujarat
Uttar Pradesh
Kolkata
Bihar
Jammu and Kashmir

file2.txt में निम्नलिखित पंक्तियां हैं:

Tamil Nadu
Gujarat
Andhra Pradesh
Bihar
Uttar pradesh

अब यदि diff कमांड देंगे तो कुछ ऐसा परिणाम मिलेगा

$ diff file1.txt file2.txt
0a1
> Tamil Nadu
2,3c3
< Uttar Pradesh
 Andhra Pradesh
5c5
 Uttar pradesh
  • 0a1 बता रहा है कि file1.txt में एकदम आरंभ में (जिसे शून्य से निरूपित किया गया है) file2.txt की पहली पंक्ति “जोड़” दी जाए। यहां‌ a का अर्थ जोड़ना है।
  • 2,3c3 बता रहा है कि file1.txt की दूसरी पंक्ति से लेकर तीसरी पंक्ति तक को file2.txt की तीसरी पंक्ति से बदलना है। यहां c का अर्थ चेंज अर्थात बदलना है।
  • 5c5 का अर्थ है कि file1.txt की पांचवीं पंक्ति को file2.txt की पांचवीं पंक्ति से बदलना है।

वैसे diff कमांड का परिणाम मनुष्यों के पढ़ने के लिए नही होता। बल्कि यह मशीनों के पढ़ने हेतु होता है। ऊपर जो परिणाम आपको दिखाए गए हैं वह diff कमांड का सामान्य अवस्था में दिखाई देने वाला परिणाम है।

और जानें: लिनक्स कमांड लाइन से इंटरनेट की गति नापें।

यदि इसके आउटपुट को कालम में देखना हो तो -y विकल्प का प्रयोग कर सकते हैं।

कालम वाले परिणाम को समझना अधिक आसान है। यहां > का अर्थ जोड़ना | का अर्थ बदलना और < का अर्थ हटाना है।

सामान्य अवस्था में यह कमांड “केस सेंसिटिव” होता है। यदि आप इसके “केस सेंसिटिव” वाले प्रभाव को खत्म करना चाहते हैं तो -i विकल्प का प्रयोग कर सकते हैं।

आपके कम्प्यूटर में‌ diff का कौन सा संस्करण स्थापित है यह जानने के लिए –version विकल्प का प्रयोग करें।

username@Ubuntu-PC:~/Documents$ diff --version
diff (GNU diffutils) 3.7
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Eggert, Mike Haertel, David Hayes,
Richard Stallman, and Len Tower.

diff कमांड के समस्त विकल्पों‌ के विषय में जानने के लिए man diff कमांड देकर इसका man page पढ़ सकते हैं।

और पढ़ें: विजुअल स्टूडियो कोड को क्लाउड में चलाएं

1 टिप्पणी

  1. […] जहां तालाबंदी के बीच जूम एप घर से काम करने वाले विभिन्न कर्मचारियों के बीच लोकप्रिय हुआ…और अधिक पढ़ें सॉफ्टवेयर एवं नुस्खेAnkur Gupta – अप्रैल 3, 20200 […]

टिप्पणियाँ बंद हैं।

More Articles Like This

Exit mobile version