Dự đoán đầu tiên của tôi, hóa ra được xác nhận, là các tệp sử dụng các kết thúc dòng khác nhau. Nó có thể là một số khác biệt khác trong khoảng trắng, chẳng hạn như sự hiện diện của khoảng trắng theo dõi (nhưng bạn thường không nhận được điều đó trên nhiều dòng) hoặc thụt lề khác nhau (tab so với khoảng trắng). Sử dụng lệnh in ra khoảng trắng và các ký tự điều khiển ở dạng hiển thị, chẳng hạn như
diff <(cat -A file1) <(cat -A file2)
diff <(sed -n l file1) <(sed -n l file2)
Bạn có thể xác nhận rằng sự khác biệt chỉ có liên quan đến kết thúc dòng bằng cách chuẩn hóa chúng trước. Bạn có thể có một dos2unix
tiện ích; nếu không, hãy xóa rõ ràng ký tự CR (^ M, \ r, \ 015):
diff <(tr -d '\r' <file1) <(tr -d '\r' <file2)
hoặc, nếu file1
là một trong những kết thúc DOS
tr -d '\r' <file1 | diff - file2
sed -n l filename
. Nếu nó không hữu ích, hãy thêm một ví dụ dữ liệu vàdiff
đầu ra ở đây.