लिनक्स डिफ कमांड

Linaksa Dipha Kamanda



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

हम अपने सिस्टम के वर्किंग फोल्डर में दो टेक्स्ट फाइल बना रहे हैं।









दोनों फ़ाइल सामग्री के बीच अंतर प्रदर्शित करने के लिए क्वेरी क्षेत्र में 'diff' निर्देश का उपयोग करने का समय आ गया है। हम इस 'diff' निर्देश को क्रम में दोनों फ़ाइल नामों के साथ आज़माते हैं, यानी पहले one.txt और फिर two.txt फ़ाइल। 'Diff' कमांड निष्पादन हमें दोनों फाइलों के बीच अंतर दिखाता है:



  • पहली टेक्स्ट फ़ाइल के अनुसार लाइन नंबर।
  • विशेष वर्ण/प्रतीक हमें परिवर्तन, जोड़ने, हटाने जैसे अंतर के बारे में बताने के लिए।
  • दूसरी टेक्स्ट फ़ाइल के अनुसार लाइन नंबर।

हमारे पहले दृष्टांत में, हम 'diff' कमांड आउटपुट की लाइन नंबरों के बीच 'a' प्रतीक पर विस्तार से बताते हैं; 'ए' का प्रयोग 'जोड़ें' के संक्षेप के रूप में किया जाता है। क्वेरी क्षेत्र में दोनों फ़ाइल नामों के साथ 'बिल्ली' निर्देश का उपयोग अलग-अलग प्रत्येक टेक्स्ट फ़ाइल, यानी one.txt और Two.txt के अंदर की सामग्री को प्रदर्शित करता है। हमारे पास पहली फ़ाइल में कुल 4 पंक्तियाँ हैं जबकि दूसरी फ़ाइल में 5 पंक्तियाँ हैं। लाइन 1 अतिरिक्त है।





फिर, हम टर्मिनल क्वेरी क्षेत्र पर 'diff' निर्देश की कोशिश करते हैं, उसके बाद फाइलों के नाम - one.txt और Two.txt। इस निर्देश का निष्पादन दूसरी फ़ाइल से लाइन 1 के साथ आउटपुट के रूप में '0a1' दिखाता है जो दूसरी फ़ाइल में एक अतिरिक्त लाइन है। संख्यात्मक मान '0' का उपयोग पहली फ़ाइल की पंक्ति 0 या पंक्ति 1 से पहले, यानी one.txt के लिए किया जाता है। प्रतीक 'ए' का अर्थ है 'जोड़ना'। अंत में, संख्यात्मक मान '1' का अर्थ दूसरी फ़ाइल की पहली पंक्ति है। मिक्स आउटपुट '0d1' का अर्थ है कि दूसरी फ़ाइल 'two.txt' की पंक्ति 1 को पहली फ़ाइल 'one.txt' के शीर्ष पर जोड़ा जाना चाहिए, इससे पहले कि पहली पंक्ति दो दोनों फ़ाइलों को समान बनाती है।



अब, हम एक और उदाहरण देखने के लिए दोनों फाइलों को अपडेट करते हैं। पहली फ़ाइल 'one.txt' में 4 लाइनें होती हैं और दूसरी फ़ाइल 'two.txt' में केवल 3 लाइनें होती हैं। इन फ़ाइलों के लिए एकमात्र अंतर पहली फ़ाइल में एक अतिरिक्त पंक्ति का उपयोग है, अर्थात पंक्ति 1 = 'सोमवार' जो दूसरी फ़ाइल में नहीं है। अद्यतन पाठ फ़ाइलों के लिए 'diff' निर्देश का प्रयास करने के बाद, हमें आउटपुट के रूप में '1d0' मिलता है। और पहली फ़ाइल से पहली पंक्ति प्रदर्शित होती है। '1d0' में, 1 का अर्थ है कि फ़ाइल 'one.txt' से पहली पंक्ति को हटा दिया जाना चाहिए (चिह्न 'डी' के अनुसार), और 0 का अर्थ है कि दूसरी फ़ाइल को कोई अपडेट नहीं मिला। अंत में, स्पष्ट अंतर के लिए पहली फ़ाइल 'one.txt' से पंक्ति 1 प्रदर्शित होती है।

इसी तरह, 'diff' कमांड दो फाइलों की पंक्तियों के बीच अंतर प्रदर्शित कर सकता है। इसलिए, हम दोनों टेक्स्ट फाइलों को एक बार फिर से अपडेट करते हैं। इस बार, पहली फ़ाइल में 5 पंक्तियाँ हैं जबकि दूसरी फ़ाइल में केवल 4 हैं। केवल अंतर one.txt में एक अतिरिक्त पंक्ति का उपयोग है जो कि पंक्ति 3 है। टर्मिनल में दोनों फ़ाइलों पर प्रयुक्त अंतर कमांड एक प्रदर्शित करता है पहली फ़ाइल 'one.txt' से लाइन 3 के साथ आउटपुट '3d2'। यह आउटपुट दिखाता है कि पहली फ़ाइल 'one.txt' से लाइन 3 को हटा दिया जाना चाहिए ताकि हम दूसरी फाइल की लाइन 2 पर दोनों फाइलों को सिंक कर सकें। अलग लाइन '3' प्रदर्शित की जाती है ताकि हम अंतर के बारे में स्पष्ट विचार प्राप्त कर सकें।

आइए आउटपुट पर एक स्पष्ट और गहराई से नज़र डालें। निम्न छवि से 1,5c1,2 आउटपुट दिखाता है कि पहली फ़ाइल (one.txt) की पंक्तियों 1 से 5 को दूसरी फ़ाइल (दो.txt) की पंक्तियों 1 से 2 के साथ बदला जाना चाहिए। इसका मतलब यह है कि one.txt फ़ाइल की पहली 5 पंक्तियों (1 से 5) को बदल दिया जाना चाहिए और इसे दूसरी फ़ाइल 'two.txt' की पहली दो पंक्तियों (1, 2) से बदल दिया जाना चाहिए ताकि इसे समान बनाया जा सके। अंत में, पहली फ़ाइल से सभी 5 पंक्तियाँ प्रदर्शित होती हैं जिन्हें दूसरी फ़ाइल की प्रदर्शित 2 पंक्तियों से बदला जाना चाहिए। इस प्रकार प्रतीक 'सी' दो फाइलों के बीच अंतर बताता है - दोनों फाइलों में कोई रेखा समान नहीं है।

'Diff' कमांड आपको इसके आउटपुट को एक संदर्भ रूप में प्राप्त करने की अनुमति देता है। कल्पना करें कि आपके पास इन फ़ाइलों में निम्न डेटा वाली समान दो फ़ाइलें हैं। आउटपुट के आसपास का संदर्भ कुल साधारण फाइलों के बीच मुख्य अंतर को प्रदर्शित करना होगा जो निम्न छवि में दिखाए गए हैं। अब, हमारे पास पहली फ़ाइल “one.txt” में 5 पंक्तियाँ हैं और दूसरी फ़ाइल “two.txt” में 4 पंक्तियाँ हैं।

'Diff' निर्देश के संदर्भ-आधारित आउटपुट प्राप्त करने के लिए, हमें 'diff' कमांड के भीतर '-c' विकल्प का उपयोग करने की आवश्यकता है। इस 'diff' कमांड में पहले से अपडेट की गई फाइलों का उपयोग करते हुए, हमें निम्नलिखित आउटपुट मिलते हैं - तारीख, दिन, साथ ही फाइलों के भीतर टेक्स्ट निर्माण के बारे में अतिरिक्त जानकारी। one.txt फ़ाइलों से 5 लाइनें प्रदर्शित होती हैं। विशेष रूप से, इसकी तीसरी पंक्ति को किसी अन्य फ़ाइल में जोड़ने के लिए '-' वर्ण का उपयोग करके हाइलाइट किया गया है।

निष्कर्ष

हमने 'diff' निर्देश के बारे में सब कुछ संक्षेप में समझाने की कोशिश की। इसके लिए, हमने हर बार अपनी टेक्स्ट फाइलों को अपडेट किया और फाइल में डेटा जोड़ने, हटाने और बदलने के लिए एक अपडेटेड आउटपुट प्राप्त किया। परिचय ने लिनक्स में 'diff' कमांड का उपयोग करने के उद्देश्य और लिनक्स के लिए इसका उपयोग करने के तरीके के बारे में बताया।