Potrzebuję pracować z dużymi plikami i muszę znaleźć różnice między dwoma. I nie potrzebuję różnych bitów, ale liczbę różnic.Jak liczyć różnice między dwoma plikami w systemie Linux?
Aby znaleźć liczbę różnych rzędów wymyślić
diff --suppress-common-lines --speed-large-files -y File1 File2 | wc -l
I to działa, ale jest tam lepszy sposób to zrobić?
I jak policzyć dokładną liczbę różnic (przy użyciu standardowych narzędzi, takich jak bash, diff, awk, sed niektóre stare wersje perla)?
ten nie działa, jak zdefiniować „roboczy” http: // Pastie. org/pastes/3179433/text W każdym pliku jest tylko jeden znak, z czym wiąże się liczba "4"? –
To działa. Dla przykładu masz cztery linie: pierwsze dwa to nazwy każdego pliku (jak wyjaśniono w odpowiedzi), a dwie pozostałe to dwie różnice, 1 linia z "a" usunięta i 1 linia z "b" dodane. –
To zależy od tego, jak liczyć różnice. W tym przykładzie [pastie.org/5553254](http://pastie.org/5553254), uważam, że istnieją 2 linie, które różnią się, tj. Zgadzam się z sekwoją mcdowell. Niedogodne jest również odjęcie 2 od wyniku (z powodu drukowania 2 plików diff: ed). Dlatego uważam, że odpowiedź Josha jest właściwa. Można go nieznacznie skrócić za pomocą opcji -c (count) na grep, zamiast pipeline do wc -l, tak: 'diff -U 0 plik1 plik2 | grep -c^@ ' –