Ignore newlines with diff

2020-06-09 07:54发布

问题:

I'd like to ignore newlines when I compare c source files. For example I want following two codes are reported they are same.

// codeA
int main(int argc, char *argv[]) 
{

// codeB
int main(int argc, char *argv[]) {

I already have tried following options but could not get the result.

diff -b codeA codeB
diff -w codeA codeB

回答1:

You can pretty print both files using, for example, GNU Indent, http://www.gnu.org/software/indent/ , and then compare them with diff.



回答2:

There is a tool called "word diff" (tool command line must be 'wdiff') which might help. http://www.gnu.org/software/wdiff/manual/wdiff.html



回答3:

If you want an all or nothing answer you can first strip the files of newlines:

cat file.txt | tr -d '\n' > stripped.txt 

This is of course very unhelpful for finding actual differences.



标签: unix diff