Tôi có 2 tập tin chứa một danh sách các bài hát. hdsongs.txt và sdsongs.txt
Tôi đã viết một tập lệnh đơn giản để liệt kê tất cả các bài hát và xuất ra các tệp văn bản, để sau đó chạy khác. Nó hoạt động tốt đối với hầu hết các phần, nhưng lệnh diff thực tế trong tập lệnh đang hiển thị cùng một dòng là khác nhau. Điều này thực sự xảy ra cho nhiều dòng, nhưng không phải tất cả.
Dưới đây là ví dụ về một bài hát trong cả hai tệp:
$ grep Apologize \*songs\*
hdsongs.txt:Timbaland/Apologize.mp3
sdsongs.txt:Timbaland/Apologize.mp3
Không có ký tự đặc biệt nào mà tôi có thể thấy:
$ cat -A hdsongs.txt sdsongs.txt | grep Apologize
Timbaland/Apologize.mp3$
Timbaland/Apologize.mp3$
Khi tôi chạy diff, nó hiển thị cùng một dòng trong mỗi tệp; Nhưng không phải các dòng giống nhau?
$ diff hdsongs.txt sdsongs.txt | grep Apologize
> Timbaland/Apologize.mp3
< Timbaland/Apologize.mp3
Điều này tương tự như luồng ở đây: diff báo cáo hai tệp khác nhau, mặc dù chúng giống nhau!
nhưng điều này là cho các dòng trong tệp, không phải toàn bộ tệp và độ phân giải dường như không phù hợp trong trường hợp này.
$ diff <(cat -A phonesongsonly.txt) <(cat -A passportsongsonly.txt) | grep Apologize
< Timbaland/Apologize.mp3$
> Timbaland/Apologize.mp3$
$ wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" hdsongs.txt sdsongs.txt | grep Apologize
>Timbaland/Apologize.mp3
>Timbaland/Apologize.mp3
Có ai biết tại sao diff sẽ báo cáo cùng một dòng hai lần như thế này không?
hexdump
hai dòng đó và xem những gì khác nhau?