2008-12-09 70 views
14

我有兩個文件略有差異。正常的diff會顯示文件之間的差異。與-c-u我可以添加一定量的上下文到每個大塊。我可以通過哪些選項傳遞給diff以查看每條未發生變化的線,並將差異作爲單個大塊?如何區分具有完整上下文的兩個文件?

+2

如果您碰巧知道文件大小的限制,如何將大量參數傳遞給-U? diff -U 9999 ... – 2014-12-11 05:48:14

回答

20

並排輸出使用「-y」選項全側

差異-y文件1文件2

會給你輸出類似

* 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格式行爲來獲得您想要的行爲而不使用並排模式:

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

T他命令將顯示完整的文件作爲背景和最近在格式上diff -u file1 file2

+0

感謝這個答案 - 任何想法如何添加到這個?我想使用`diff2html.py`,它接受統一的差異;我必須手動說:`(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`強制其語法着色;然而,我只是隨便在那裏添加大塊數字,直到它開始工作 - 我寧願「差異」輸出一個大塊。可能嗎?乾杯! – sdaau 2013-09-16 17:27:06

1

解決的辦法是設置一個上下文大小(-U參數)比文件本身更大:

diff -U 1000000 file1.txt file2.txt 
相關問題