У меня есть 2 файла, содержащие список песен. hdsongs.txt и sdsongs.txt
Я написал простой скрипт, чтобы вывести список всех песен и вывести их в текстовые файлы, чтобы потом запустить diff. По большей части он работает нормально, но в самом скрипте команда diff показывает ту же строку, что и другая. На самом деле это происходит для нескольких строк, но не для всех.
Вот пример песни в обоих файлах:
$ grep Apologize \*songs\*
hdsongs.txt:Timbaland/Apologize.mp3
sdsongs.txt:Timbaland/Apologize.mp3
Там нет конечного специального символа, который я вижу:
$ cat -A hdsongs.txt sdsongs.txt | grep Apologize
Timbaland/Apologize.mp3$
Timbaland/Apologize.mp3$
Когда я запускаю diff, он показывает одну и ту же строку в каждом файле; но разве линии не совпадают?
$ diff hdsongs.txt sdsongs.txt | grep Apologize
> Timbaland/Apologize.mp3
< Timbaland/Apologize.mp3
Это похоже на ветку здесь: в отчетах о различиях два файла отличаются, хотя они одинаковы!
но это касается строк в файле, а не всего файла, и разрешение в этом случае, похоже, не подходит.
$ 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
Кто-нибудь знает, почему diff сообщит одну и ту же строку дважды, как это?
hexdump
эти две строки и посмотреть, что отличается?