Search code examples
shellcountdiff

How to count differences between two files on linux?


I need to work with large files and must find differences between two. And I don't need the different bits, but the number of differences.

To find the number of different rows I come up with

diff --suppress-common-lines --speed-large-files -y File1 File2 | wc -l

And it works, but is there a better way to do it?

And how to count the exact number of differences (with standard tools like bash, diff, awk, sed some old version of perl)?


Solution

  • diff -U 0 file1 file2 | grep -v ^@ | wc -l
    

    That minus 2 for the two file names at the top of the diff listing. Unified format is probably a bit faster than side-by-side format.