How to diff two files with same number of lines, and get only different lines












0














Given 2 files which have the same number of lines, is it possible the get a diff with ONLY change (c), in other words, WITHOUT additions (a) and deletions (d)?



For example, here are 2 files with 10 lines each.




file1.txt:




apple
apple
pear
grape
pear
grape
pear
pear
pear
apple



file2.txt:




apple
apple
pear
pear
pear
pear
pear
pear
pear
apple


Calling diff file1.txt file2.txt would produce:



4d3
< grape
6c5,6
< grape
---
> pear
> pear


Is it possible to get a result like:



4c4
< grape
---
> pear
6c6
< grape
---
> pear









share|improve this question



























    0














    Given 2 files which have the same number of lines, is it possible the get a diff with ONLY change (c), in other words, WITHOUT additions (a) and deletions (d)?



    For example, here are 2 files with 10 lines each.




    file1.txt:




    apple
    apple
    pear
    grape
    pear
    grape
    pear
    pear
    pear
    apple



    file2.txt:




    apple
    apple
    pear
    pear
    pear
    pear
    pear
    pear
    pear
    apple


    Calling diff file1.txt file2.txt would produce:



    4d3
    < grape
    6c5,6
    < grape
    ---
    > pear
    > pear


    Is it possible to get a result like:



    4c4
    < grape
    ---
    > pear
    6c6
    < grape
    ---
    > pear









    share|improve this question

























      0












      0








      0







      Given 2 files which have the same number of lines, is it possible the get a diff with ONLY change (c), in other words, WITHOUT additions (a) and deletions (d)?



      For example, here are 2 files with 10 lines each.




      file1.txt:




      apple
      apple
      pear
      grape
      pear
      grape
      pear
      pear
      pear
      apple



      file2.txt:




      apple
      apple
      pear
      pear
      pear
      pear
      pear
      pear
      pear
      apple


      Calling diff file1.txt file2.txt would produce:



      4d3
      < grape
      6c5,6
      < grape
      ---
      > pear
      > pear


      Is it possible to get a result like:



      4c4
      < grape
      ---
      > pear
      6c6
      < grape
      ---
      > pear









      share|improve this question













      Given 2 files which have the same number of lines, is it possible the get a diff with ONLY change (c), in other words, WITHOUT additions (a) and deletions (d)?



      For example, here are 2 files with 10 lines each.




      file1.txt:




      apple
      apple
      pear
      grape
      pear
      grape
      pear
      pear
      pear
      apple



      file2.txt:




      apple
      apple
      pear
      pear
      pear
      pear
      pear
      pear
      pear
      apple


      Calling diff file1.txt file2.txt would produce:



      4d3
      < grape
      6c5,6
      < grape
      ---
      > pear
      > pear


      Is it possible to get a result like:



      4c4
      < grape
      ---
      > pear
      6c6
      < grape
      ---
      > pear






      command-line diff






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 17 '18 at 18:17









      Ron LauRon Lau

      1312




      1312






















          1 Answer
          1






          active

          oldest

          votes


















          1














          Try this:



          diff <(nl file1.txt) <(nl file2.txt) | awk '{$2=""; print}' | sed -e 's/^([<>])  /1 /'


          The nl command numbers the lines, which makes it possible to use diff line-by-line. The awk command selects everything in the diff output except for the line numbers added by nl. In other words, it removes the line numbers. The sed command removes an awkward extra space that awk leaves behind.






          share|improve this answer























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "3"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1385322%2fhow-to-diff-two-files-with-same-number-of-lines-and-get-only-different-lines%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            Try this:



            diff <(nl file1.txt) <(nl file2.txt) | awk '{$2=""; print}' | sed -e 's/^([<>])  /1 /'


            The nl command numbers the lines, which makes it possible to use diff line-by-line. The awk command selects everything in the diff output except for the line numbers added by nl. In other words, it removes the line numbers. The sed command removes an awkward extra space that awk leaves behind.






            share|improve this answer




























              1














              Try this:



              diff <(nl file1.txt) <(nl file2.txt) | awk '{$2=""; print}' | sed -e 's/^([<>])  /1 /'


              The nl command numbers the lines, which makes it possible to use diff line-by-line. The awk command selects everything in the diff output except for the line numbers added by nl. In other words, it removes the line numbers. The sed command removes an awkward extra space that awk leaves behind.






              share|improve this answer


























                1












                1








                1






                Try this:



                diff <(nl file1.txt) <(nl file2.txt) | awk '{$2=""; print}' | sed -e 's/^([<>])  /1 /'


                The nl command numbers the lines, which makes it possible to use diff line-by-line. The awk command selects everything in the diff output except for the line numbers added by nl. In other words, it removes the line numbers. The sed command removes an awkward extra space that awk leaves behind.






                share|improve this answer














                Try this:



                diff <(nl file1.txt) <(nl file2.txt) | awk '{$2=""; print}' | sed -e 's/^([<>])  /1 /'


                The nl command numbers the lines, which makes it possible to use diff line-by-line. The awk command selects everything in the diff output except for the line numbers added by nl. In other words, it removes the line numbers. The sed command removes an awkward extra space that awk leaves behind.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Dec 17 '18 at 23:29

























                answered Dec 17 '18 at 21:04









                Aarre LaaksoAarre Laakso

                113




                113






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Super User!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1385322%2fhow-to-diff-two-files-with-same-number-of-lines-and-get-only-different-lines%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Paul Cézanne

                    UIScrollView CustomStickyHeader Resize height generates problems when scroll is too fast

                    Angular material date-picker (MatDatepicker) auto completes the date on focus out