Tengo 2 archivos que contienen una lista de canciones. hdsongs.txt y sdsongs.txt
Escribí un script simple para enumerar todas las canciones y resultados en archivos de texto, para luego ejecutar un diff en contra. Funciona bien en su mayor parte, pero el comando diff real en el script muestra la misma línea como diferente. Esto realmente está sucediendo para varias líneas, pero no para todas.
Aquí hay un ejemplo de una canción en ambos archivos:
$ grep Apologize \*songs\*
hdsongs.txt:Timbaland/Apologize.mp3
sdsongs.txt:Timbaland/Apologize.mp3
No hay caracteres especiales finales que pueda ver:
$ cat -A hdsongs.txt sdsongs.txt | grep Apologize
Timbaland/Apologize.mp3$
Timbaland/Apologize.mp3$
Cuando ejecuto diff, muestra la misma línea en cada archivo; pero no son las lineas iguales?
$ diff hdsongs.txt sdsongs.txt | grep Apologize
> Timbaland/Apologize.mp3
< Timbaland/Apologize.mp3
Esto es similar al hilo aquí: diff informa que dos archivos difieren, ¡aunque son iguales!
pero esto es para líneas dentro del archivo, no todo el archivo, y la resolución allí no parece encajar en este caso.
$ 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
¿Alguien sabe por qué diff informaría la misma línea dos veces como esta?
hexdump
esas dos líneas y vea qué difiere?