मानक diff उपकरण भिन्न फ़ाइल में लाइनों को खोजने के लिए बहुत उपयोगी है, लेकिन यह चरित्र-दर-चरित्र मतभेदों के लिए अच्छा काम नहीं करता है। मुझे अक्सर विभिन्न कंप्यूटरों पर सिंक्रनाइज़ेशन के बिना ग्रंथों के चरित्र-दर-चरित्र (यानी लिखित पाठ, कोड नहीं) को मर्ज करने की आवश्यकता होती है (हाँ, मुझे पता है कि मुझे नहीं करना चाहिए, लेकिन यह वैसे भी होता है)। अनुच्छेद या दो जोड़ने के अलावा, मैंने एक अल्पविराम, एक वर्तनी गलती या पाठ में कुछ अन्य छोटे बदलाव को बदल दिया होगा जो पहले दोनों फाइलों के लिए आम था।मैं कमांड लाइन से पोर्टेबल, पठनीय और पाइप करने योग्य चरित्र-दर-चरित्र भिन्नता कैसे करूं?
डिफ मुझे बताएगा कि कौन सी रेखाएं बदली गई हैं, लेकिन चूंकि प्रति पंक्ति में कई भिन्नताएं हो सकती हैं, इसलिए मुझे प्रत्येक भौतिक रूप से छोटे लेकिन महत्वपूर्ण अंतर प्रति पंक्ति को खोजने के लिए सावधानी से लाइनों को स्कैन करना होगा। फिक्सिंग के बाद, मुझे यह सुनिश्चित करने के लिए diff को दोहराना होगा कि मुझे कोई संपादन याद नहीं आया है। जब रेखाएं अनुच्छेद स्वरूपित होती हैं (यानी प्रति अनुच्छेद एक पंक्ति), और जब कई लगातार पंक्तियों में ऐसे छोटे अंतर होते हैं तो यह और भी बदतर हो जाता है।
अभी मुझे यह स्वीकार करना होगा कि मैं आमतौर पर दोनों फ़ाइलों को माइक्रोसॉफ्ट वर्ड में लोड करता हूं और इसके अंतर्निर्मित diff फ़ंक्शन का उपयोग करता हूं। यह निश्चित रूप से कुछ छोटे अंतर खोजने के लिए वर्ड जैसे विशाल पैकेज को शुरू करने के लिए असुविधाजनक है, लेकिन कम से कम यह एक चरित्र-दर-चरित्र आधार पर फ़ाइलों की तुलना करता है।
जो मैं वास्तव में चाहता हूं वह ऐसा करने का यूनिक्स तरीका है। एक छोटा और प्यारा टूल या स्क्रिप्ट जो टेक्स्ट पर चरित्र-दर-चरित्र तुलना करता है, यानी लाइन आधारित, लाइन-एंडिंग को अनदेखा करने में सक्षम, कुछ समझदार एसीआई-कला द्वारा रिपोर्टिंग, और कमांड से स्क्रिप्ट में उपयोग के लिए पूरी तरह से पाइप करने योग्य लाइन?
इस के लिए एक और सवाल है, Using 'diff' (or anything else) to get character-level diff between text files, लेकिन यह प्रश्न वेब आधारित टूल द्वारा उदाहरण के लिए एक lib द्वारा संतुष्ट था, मैं कमांड लाइन पर कुछ पसंद करूंगा।
एक ही सवाल यह भी कहा गया अजगर [difflib] (http://docs.python.org/library/difflib .html) और एक [कमांड लाइन] (http://docs.python.org/library/difflib.html#a-command-line-interface-to-difflib) इंटरफ़ेस। क्या आपने कोशिश की? – devnull
नहीं, मैंने यह नहीं देखा कि, मैं इसे देख लूँगा! मैं उम्मीद कर रहा था कि इसके लिए एक मानक मानक पैकेज था (यानी दुह! हर कोई लेकिन आप जानते हैं कि आपको इसका उपयोग करना चाहिए: ...), लेकिन ऐसा लगता है कि यह एक कठिन समस्या है मैंने सोचा था। – 00prometheus
आप प्रत्येक चरित्र को अपनी लाइन में डाल सकते हैं और उस पर एक diff-tool का उपयोग कर सकते हैं। –