Lo strumento diff standard è molto utile per trovare linee in un file che differiscono, ma non funziona bene per le differenze carattere per carattere. Ho spesso bisogno di unire testi carattere per carattere (cioè testo scritto, non codice) modificato senza sincronizzazione su computer diversi (sì, so che non dovrei, ma succede comunque). Oltre ad aggiungere un paragrafo o due, avrei potuto modificare una virgola, un errore di ortografia o qualche piccola modifica nel testo che era in precedenza comune a entrambi i file.Come si esegue un diff di carattere per lettura portatile, leggibile e pipettabile dalla riga di comando?
Diff mi dirà quali linee sono cambiate, ma poiché potrebbero esserci più diff per riga, devo scrutare attentamente le linee per trovare ogni differenza fisicamente piccola ma importante per linea. Dopo aver risolto, devo ripetere il diff per essere sicuro di non perdere nessuna modifica. Diventa ancora peggio quando le righe sono formattate in paragrafi (ad esempio una riga per paragrafo) e quando molte righe consecutive presentano differenze così piccole.
In questo momento devo ammettere che di solito carico solo entrambi i file in Microsoft Word e utilizzo la sua funzione di diff incorporata. Ovviamente è scomodo avviare un enorme pacchetto come Word solo per trovare alcune piccole differenze, ma almeno confronta i file in base ai caratteri per carattere.
Quello che voglio davvero è un modo Unix per farlo. Uno strumento o uno script piccolo e carino che esegue confronti carattere per carattere sul testo, ovvero non basato su linea, in grado di ignorare le terminazioni di riga, riportare da alcuni sensibili ascii-art e completamente pipeable per l'utilizzo negli script dal comando linea?
C'è un'altra domanda per questo, Using 'diff' (or anything else) to get character-level diff between text files, ma quella domanda è stata soddisfatta da una lib esemplificata da uno strumento basato sul Web, preferirei qualcosa sulla riga di comando.
La stessa domanda menziona anche python [difflib] (http://docs.python.org/library/difflib .html) e un'interfaccia [riga di comando] (http://docs.python.org/library/difflib.html#a-command-line-interface-to-difflib). Lo hai provato? – devnull
No, Non l'ho notato, lo esaminerò! Speravo ci fosse un pacchetto standard mantenuto per questo (cioè Duh! Tutti ma tu sai che dovresti usare: ...), ma sembra essere un problema più complicato – 00prometheus
Puoi inserire ogni carattere nella sua linea e usare uno strumento di diff. –