2008-12-09 11 views
14

मेरे पास दो अंतर हैं जिनमें मामूली अंतर है। एक सामान्य diff मुझे फ़ाइलों के बीच अंतर दिखाएगा। -c या -u के साथ मैं प्रत्येक हंक में संदर्भ की मात्रा जोड़ सकता हूं। परिवर्तनों के साथ-साथ प्रत्येक अपरिवर्तित रेखा को देखने के लिए मैं diff पर कौन से विकल्प पास कर सकता हूं, और एक एकल, बड़े हंक के रूप में अंतर प्राप्त कर सकता हूं?मैं पूर्ण संदर्भ के साथ दो फाइलों को कैसे भिन्न कर सकता हूं?

+2

आप तो फाइलों के आकार पर बाध्यता के बारे में जानने के लिए, कैसे -यू के लिए एक बड़ा तर्क पारित करने के बारे में? diff -U 9999 ... –

उत्तर

20

diff -y file1 file2

आप की तरह

* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.  * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 
* Praesent fringilla facilisis pede.       * Praesent fringilla facilisis pede. 
* Nulla sit amet tellus id massa luctus pellentesque.   * Nulla sit amet tellus id massa luctus pellentesque. 
* Pellentesque a neque nec elit aliquam congue.     * Pellentesque a neque nec elit aliquam congue. 
* Quisque rhoncus ultricies elit.        * Quisque rhoncus ultricies elit. 
* Pellentesque laoreet urna id arcu.       * Pellentesque laoreet urna id arcu. 
* Aenean non erat et elit egestas dictum.      * Aenean non erat et elit egestas dictum. 
* Proin ornare sem eget nulla.         * Proin ornare sem eget nulla. 
* Phasellus placerat convallis elit.       * Phasellus placerat convallis elit. 
* Donec ultricies metus non purus.        * Donec ultricies metus non purus. 
* Sed vel enim et nunc accumsan egestas.      * Sed vel enim et nunc accumsan egestas. 
* Cras eget elit in purus luctus ornare.      * Cras eget elit in purus luctus ornare. 
* In pharetra ligula sodales pede.       < 
* Morbi consectetuer mi vitae sem.        * Morbi consectetuer mi vitae sem. 
* Donec sollicitudin pretium erat.        * Donec sollicitudin pretium erat. 
* Cras facilisis nunc sed leo.         * Cras facilisis nunc sed leo. 
* Nunc varius ante sed nisi.         * Nunc varius ante sed nisi. 
                   > THIS SHOULDN'T BE HERE 
                   > THIS SHOULDN'T EITHER! 
* Aenean in quam sagittis est ornare ultricies.     * Aenean in quam sagittis est ornare ultricies. 
* Etiam dignissim scelerisque velit.       * Etiam dignissim scelerisque velit. 
* Mauris porta fringilla sapien.        * Mauris porta fringilla sapien. 
* Proin vitae nisl vitae mauris viverra tempor.     * Proin vitae nisl vitae mauris viverra tempor. 
* Maecenas quis arcu sed lorem mollis bibendum.     * Maecenas quis arcu sed lorem mollis bibendum. 
* Morbi sed turpis non risus molestie posuere.    | * Morbi sed non risus molestie posuere. 
* Curabitur id magna in nulla commodo tristique.    * Curabitur id magna in nulla commodo tristique. 
* Praesent quis nulla vel augue faucibus viverra.    | * Praesent quis nulla BAD vel augue faucibus viverra. 
* Sed interdum libero.          | * Sed lacinia interdum libero. 
                   > ANOTHER ADDITION 
* Donec ultricies posuere arcu.         * Donec ultricies posuere arcu. 
* Etiam interdum auctor mi.          * Etiam interdum auctor mi. 
20

उत्पादन कुछ देना होगा तुम भी diff स्वरूपण ओवरराइड कर सकते हैं ओर उत्पादन से पूरी टीम के लिए "-y" विकल्प का उपयोग साइड-बाय-साइड मोड का उपयोग किए बिना अपना वांछित व्यवहार प्राप्त करने के लिए व्यवहार:

diff --new-line-format='+%L' --old-line-format='-%L' --unchanged-line-format=' %L' file1 file2 

टी अपने आदेश आप संदर्भ के रूप में पूर्ण फ़ाइल दिखाने के लिए और प्रारूप में निकटतम diff -u file1 file2

+0

इस उत्तर के लिए धन्यवाद - कोई विचार है कि उसमें एक हंक कैसे जोड़ें? मैं 'diff2html.py' का उपयोग करना चाहता हूं, जो एकीकृत diff स्वीकार करता है; और मुझे मैन्युअल रूप से कहना है: '(echo -e "--- _L.txt \ n +++ _R.txt \ n @@ -1,100 +1,100 @@" && diff - new-line-format ... _L.txt _R.txt) | python diff2html.py> LR.html' इसके वाक्यविन्यास रंग को मजबूर करने के लिए; हालांकि मैं मनमाने ढंग से वहां तक ​​हंक संख्याओं को जोड़ता हूं जब तक कि यह काम शुरू नहीं कर लेता - और मैं इसके बजाय 'diff' आउटपुट को हंक करता हूं। क्या यह संभव है? चीयर्स! – sdaau

1

समाधान एक संदर्भ आकार (यू तर्क) जो फ़ाइल स्वयं से भी बड़ा है स्थापित करने के लिए है करने के लिए होगा:

diff -U 1000000 file1.txt file2.txt 
संबंधित मुद्दे

 संबंधित मुद्दे