The standard diff tool is very useful to find lines in a file that differ, but it doesn't work well for character-by-character differences. I often need to merge texts character-by-character (i.e. written text, not code) modified without synchronization on different computers (yes, I know I shouldn't, but it happens anyway). Apart from adding a paragraph or two, I might have altered a comma, a spelling mistake or some other small change in the text that was previously common to both files.
Diff will tell me what lines are changed, but since there might be multiple diffs per line, I must carefully scan the lines to find each physically small but important diff per line. After fixing, I must repeat the diff to make sure I didn't miss any edits. It gets even worse when the lines are paragraph formatted (i.e. one line per paragraph), and when many consecutive lines have such small differences.
Right now I must admit that I usually just load both files into Microsoft Word and use its built-in diff function. It is of course inconvenient to start a huge package like Word just to find some small differences, but at least it compares files on a character-by-character basis.
What I really want is a Unix way of doing this. A small and cute tool or script that does character-by-character comparisons on text, i.e. not line based, able to ignore line-endings, reporting by some sensible ascii-art, and fully pipeable for use in scripts from the command line?
There is another question for this, Using 'diff' (or anything else) to get character-level diff between text files, but that question was satisfied by a lib exemplified by a web-based tool, I would prefer something on the command-line.