C语言 比较/区分调整文件

ncgqoxb0  于 2023-01-29  发布在  其他
关注(0)|答案(1)|浏览(99)

我有两个文件,看起来像这样:

#define TUNING_CONST 55
#define OTHER_TUNING_CONST 107
...

以及

#define TUNING_CONST 65
#define OTHER_TUNING_CONST 93
...

你可以把它们看作是一个自动生成的文件和它的静态库。我想比较它们,但是我找不到一个好的方法。diff显然不能看到除了常量之外的行是相同的。我尝试了一个hacky的方法来处理xargs,但是有点棘手......这里是一个开始。显示了另一个文件中的每一个常量,它们是逐行匹配的,但是它没有显示名字或者原始常量,所以在这一点上没有用。

egrep -o '^#define \S+' tuning.h | egrep -o '\S+$' | xargs -I % egrep "%" basetune.h | egrep -o '[0-9]+$'

这当然是一种常见的情况--许多程序都生成调优数据--并且希望看到事情如何通过编程方式发生变化的情况并不罕见。

63lcw9qa

63lcw9qa1#

您还没有指定预期的输出应该是什么样的,但是这里有一个选项

join -1 2 -2 2 -o 1.2,1.3,2.3 <(sort f1) <(sort f2)

输出

OTHER_TUNING_CONST 107 93
TUNING_CONST 55 65

相关问题