लिनक्स ऑपरेटिंग सिस्टम पर, 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 विकल्प का प्रयोग करें।
[email protected]:~/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 पढ़ सकते हैं।
और पढ़ें: विजुअल स्टूडियो कोड को क्लाउड में चलाएं
[…] जहां तालाबंदी के बीच जूम एप घर से काम करने वाले विभिन्न कर्मचारियों के बीच लोकप्रिय हुआ…और अधिक पढ़ें सॉफ्टवेयर एवं नुस्खेAnkur Gupta – अप्रैल 3, 20200 […]