Mam 2 pliki zawierające listę utworów. hdsongs.txt i sdsongs.txt
Napisałem prosty skrypt, aby wyświetlić listę wszystkich utworów i wyprowadzić je do plików tekstowych, a następnie uruchomić różnicę. W większości działa dobrze, ale rzeczywiste polecenie diff w skrypcie pokazuje tę samą linię, co różne. Dzieje się tak w przypadku wielu linii, ale nie wszystkich.
Oto przykład utworu w obu plikach:
$ grep Apologize \*songs\*
hdsongs.txt:Timbaland/Apologize.mp3
sdsongs.txt:Timbaland/Apologize.mp3
Nie widzę żadnego końcowego znaku specjalnego:
$ cat -A hdsongs.txt sdsongs.txt | grep Apologize
Timbaland/Apologize.mp3$
Timbaland/Apologize.mp3$
Kiedy uruchamiam diff, pokazuje ten sam wiersz znajdujący się w każdym pliku; ale czy linie nie są takie same?
$ diff hdsongs.txt sdsongs.txt | grep Apologize
> Timbaland/Apologize.mp3
< Timbaland/Apologize.mp3
Jest to podobne do wątku tutaj: raporty różnic różnią się dwoma plikami, chociaż są takie same!
ale dotyczy to linii w pliku, a nie całego pliku, a rozdzielczość w tym przypadku wydaje się nie pasować.
$ 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
Czy ktoś wie, dlaczego diff miałby zgłaszać tę samą linię dwa razy w ten sposób?
hexdump
tych dwóch linii i zobaczyć, co się różni?