Necesito trabajar con archivos grandes y debo encontrar diferencias entre dos. Y no necesito los diferentes bits, sino la cantidad de diferencias.¿Cómo contar las diferencias entre dos archivos en Linux?
para encontrar el número de filas diferentes se me ocurren
diff --suppress-common-lines --speed-large-files -y File1 File2 | wc -l
y funciona, pero hay una mejor manera de hacerlo?
Y cómo contar el número exacto de diferencias (con herramientas estándar como bash, diff, awk, sed alguna versión anterior de perl)?
esto no funciona, como defino "trabajar" http: // pastie. org/pastes/3179433/text Hay solo un personaje en cada archivo, ¿con qué se relaciona el número "4"? –
Esto funciona. Para su ejemplo, tiene cuatro líneas: las dos primeras son el nombre de cada archivo (como se explica en la respuesta), y las otras dos son las dos diferencias, una línea con 'a' eliminada y 1 línea con 'b' agregada. –
Depende de cómo cuente las diferencias. En este ejemplo [pastie.org/5553254](http://pastie.org/5553254), considero que hay 2 líneas que difieren, es decir, estoy de acuerdo con sequoia mcdowell. También es inconveniente tener que restar 2 del resultado (debido a la impresión de los 2 archivos modificados). Por lo tanto, creo que la respuesta de Josh es la correcta. Se puede acortar ligeramente usando la opción -c (count) en grep, en lugar de piping-w, como este: 'diff -U 0 file1 file2 | grep -c^@ ' –