Ho 2 file contenenti un elenco di brani. hdsongs.txt e sdsongs.txt
Ho scritto un semplice script per elencare tutte le canzoni e l'output in file di testo, per poi eseguire un diff. Funziona bene per la maggior parte, ma l'attuale comando diff nello script mostra la stessa riga di essere diverso. Questo sta effettivamente accadendo per più linee, ma non per tutte.
Ecco un esempio di un brano in entrambi i file:
$ grep Apologize \*songs\*
hdsongs.txt:Timbaland/Apologize.mp3
sdsongs.txt:Timbaland/Apologize.mp3
Non ci sono caratteri speciali finali che posso vedere:
$ cat -A hdsongs.txt sdsongs.txt | grep Apologize
Timbaland/Apologize.mp3$
Timbaland/Apologize.mp3$
Quando eseguo diff, mostra la stessa riga in ogni file; ma le linee non sono uguali?
$ diff hdsongs.txt sdsongs.txt | grep Apologize
> Timbaland/Apologize.mp3
< Timbaland/Apologize.mp3
Questo è simile al thread qui: diff segnala che due file differiscono, sebbene siano uguali!
ma questo vale per le linee all'interno del file, non per l'intero file, e la risoluzione non sembra adattarsi in questo 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
Qualcuno sa perché diff dovrebbe riportare la stessa riga due volte in questo modo?
hexdump
quelle due righe e vedi cosa differisce?