我有2个文件,其中包含歌曲列表。hdsongs.txt和sdsongs.txt
我编写了一个简单的脚本来列出所有歌曲并输出到文本文件,然后对它们进行比较。在大多数情况下,它工作正常,但是脚本中实际的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报告两个文件不同,尽管它们相同!
但这是针对文件中的行而不是整个文件,并且这种情况下的分辨率似乎不合适。
$ 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
这两行,看看有什么不同?