मेरे पास गीतों की सूची वाली 2 फाइलें हैं। hdsongs.txt और sdsongs.txt
मैंने सभी गीतों और आउटपुट को पाठ फ़ाइलों में सूचीबद्ध करने के लिए एक सरल स्क्रिप्ट लिखी, फिर इसके खिलाफ एक अंतर चलाने के लिए। यह अधिकांश भाग के लिए ठीक काम करता है, लेकिन स्क्रिप्ट में वास्तविक भिन्न कमांड एक ही लाइन को अलग दिखा रहा है। यह वास्तव में कई लाइनों के लिए हो रहा है, लेकिन सभी नहीं।
यहाँ दोनों फाइलों में एक गीत का एक उदाहरण है:
$ 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 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
क्या किसी को पता है कि क्यों इस तरह से एक ही लाइन को दो बार रिपोर्ट किया जाएगा?
hexdump
उन दो लाइनों की कोशिश करो और देखो क्या अलग है?