如何比较两个文件夹的文件内容,但不包括#if ... #endif

如何比较两个文件夹的文件内容,但不包括#if ... #endif

我有两个文件夹,分别是 Folder_A 和 Folder_B。这两个文件夹中的大多数文件都相同,但 Folder_B 中的某些文件被 #if ... #endif 部分修改了。是否有任何 Linux 命令或批处理可以在 Folder_B 中找到此类文件?

答案1

$ cat file1.c
foo bar
#ifdef foo
bar
#endif
qux
#ifdef foo2
bar2
#endif
qzzx

$ cat file2.c
foo bar
#ifdef foo_
bar_
#endif
qux
#ifdef foo3
bar3
#endif
quux

$ diff \
> <(awk '/^[[:space:]]*#if/,/^[[:space:]]*#endif/{next}1' file1.c) \
> <(awk '/^[[:space:]]*#if/,/^[[:space:]]*#endif/{next}1' file2.c)
3c3
< qzzx
---
> quux

相关内容