如何使用diff来扩展到C ++源文件并忽略行空间和注释

时间:2012-02-07 00:50:10

标签: linux

我需要C ++源文件,我想看看两个文件之间的区别。但我不想看到评论之间的差异。

请告知。

非常感谢。

1 个答案:

答案 0 :(得分:3)

一种方法是使用预处理器删除评论,并使用process substitution将其传递到diff ...

diff -uwB <(g++ -E left.cpp) <(g++ -E right.cpp)

当然,这会引入您#include的文件并展开您的#define宏。如果它们没有改变,那应该是非常易读的。

我传递给diff的开关是:

-w  --ignore-all-space  Ignore all white space.
-B  --ignore-blank-lines  Ignore changes whose lines are all blank.
-u  -U NUM  --unified[=NUM]  Output NUM (default 3) lines of unified context.